Skip to content

CSharp Attributes Reflection

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

Атрибути, reflection та dynamic

Посібник C# · Приклади UO

Атрибут зберігає метадані оголошення; він не обов'язково виконує дію сам. Reflection читає інформацію про типи та члени під час виконання. nameof повертає ім'я елемента, typeof — об'єкт Type. dynamic відкладає зв'язування операції до запуску.

Простий приклад (Example.cs)

Збережіть цей приклад окремо як Example.cs. Запускайте його незалежно від інших прикладів на сторінці.

Example.cs:

// PROJECT-EXAMPLE
System.Type type = typeof(string);
System.Console.WriteLine(type.Name);
System.Console.WriteLine(type.IsValueType);

Результат:

String
False
sealed class Example
{
    public string Name { get; set; } = "sample";
}
Type type = typeof(Example);
foreach (var property in type.GetProperties())
{
    UO.Print(property.Name);
}
dynamic value = new { Name = "Ore", Amount = 3 };
UO.Print($"{value.Name}: {value.Amount}");

Reflection та dynamic не дають доступу до ігрових даних, яких клієнт не отримав. При виклику невідомого члена через dynamickу помилку виникає під час виконання; Традиційний типізований код найчастіше виявляє її до запуску.

Офіційна документація: Атрибути, reflection та dynamic - Microsoft Learn.

Clone this wiki locally