Skip to content

RU 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 не дают доступа к игровым данным, которых клиент не получил. При вызове неизвестного члена через dynamic ошибка возникает во время выполнения; обычный типизированный код чаще обнаруживает её до запуска.

Официальная документация: Атрибуты, reflection и dynamic — Microsoft Learn.

Clone this wiki locally