Полная версия книги - "Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю"
На этом ресурсе Вы можете бесплатно читать книгу онлайн Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю. Жанр: Базы данных . На сайте onlinechitalka.com Вы можете онлайн читать полную версию книги без регистрации и sms. Так же Вы можете ознакомится с содержанием, описанием, предисловием о произведении
// Получить информацию о типе с применением экземпляра SportsCar.SportsCar sc = new SportsCar();Type t = sc.GetType();Очевидно, что такой подход будет работать, только если подвергаемый рефлексии тип (
SportsCarildasm.exeSystem.Object.GetType()ildasm.exeПолучение информации о типе с помощью typeof()
Следующий способ получения информации о типе предполагает применение операции
typeof// Получить информацию о типе с использованием операции typeof.Type t = typeof(SportsCar);В отличие от метода
System.Object.GetType()typeoftypeofПолучение информации о типе с помощью System.Туре.GetType()
Для получения информации о типе в более гибкой манере можно вызывать статический метод
GetType()System.ТуреType.GetType()System.StringНа заметку! Когда речь идет о том, что при вызове метода
Туре.GetType()Метод
Туре.GetType()// Получить информацию о типе с использованием статического// метода Туре.GetType().<b>// (Не генерировать исключение, если тип SportsCar не удается найти,</b><b>// и игнорировать регистр символов.)</b>Type t = Type.GetType("CarLibrary.SportsCar", false, true);В приведенном выше примере обратите внимание на то, что в строке, передаваемой методу
GetType()// Получить информацию о типе из внешней сборки.Type t = Type.GetType("CarLibrary.SportsCar, CarLibrary");Кроме того, в передаваемой методу
GetType()+SpyOptionsJamesBondCar// Получить информацию о типе для вложенного перечисления// внутри текущей сборки.Type t = Type.GetType("CarLibrary.JamesBondCar+SpyOptions");Построение специального средства для просмотра метаданных
Чтобы ознакомиться с базовым процессом рефлексии (и выяснить полезность класса
System.ТуреMyTypeViewerSystem.Runtime.dllMyTypeViewerSystemSystem.ReflectionSystem.Linq// Эти пространства имен должны импортироваться для выполнения// любой рефлексии!using System;using System.Linq;using System.Reflection;Рефлексия методов
В класс
ProgramSystem.ТуреvoidListMethods()Туре.GetMethods()System.Reflection.MethodInfoforeach// Отобразить имена методов в типе.static void ListMethods(Type t)