Repository navigation
RU CSharp Attributes Reflection
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Атрибут хранит метаданные объявления; он не обязательно выполняет действие сам. Reflection читает информацию о типах и членах во время выполнения. nameof возвращает имя элемента, typeof — объект Type. dynamic откладывает связывание операции до запуска.
Сохраните этот пример отдельно как 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.
ClassicUO — Bad Newbie & C# Scripts IDE