![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Экземпляр типа Type
Экземпляр типа Type может быть представлен любым из следующих типов: - классы; - размерные типы (Value types); - массивы; - интерфейсы; - указатели; - индексаторы (нумераторы). Ссылка на объект Type, ассоциируемый с типом, может быть получена одним из следующих способов: - метод Object.GetType возвращает объект Type, представляющий тип заданного экземпляра объекта; - статический метод GetType возвращает объект Type, который представляет тип, указанный посредством своего полного имени; - методы Module. GetTypes, Module. GetType, и Module. FindTypes возвращают объект Type, который представляет типы, определенные в модуле. Метод GetTypes позволяет получить массив объектов для всех общедоступных и защищенных типов, определенных в модуле; - метод FindInterfaces возвращает отфильтрованный список интерфейсов типов, которые поддерживаются данным типом; - метод GetElementType возвращает объект Type, который представляет элемент; - методы GetInterfaces и GetInterface возвращают объект Type, который представляет интерфейс, поддерживаемый типом; - метод GetTypeArray возвращает массив объектов Type, которые представляют типы, заданные посредством набора объектов; - методы GetTypeFromProgID и GetTypeFromCLSID возвращают объект Type, который указывается через ProgID или CLSID (методы предоставляются для совместимости с СОМ); - метод GetTypeFromHandle возвращает объект Type, который указывается посредством дескриптора (метод предоставляется для совместимости); - оператор typeof получает объект Type для указанного типа. Метаданные - это информация о выполнимом модуле, получаемая во время выполнения приложения. К такой информации относятся и данные о типе. В случае неправильного указания имени типа возникает исключение. Поэтому указание типа следует заключать в блок try - catch. Например:
try { Type tp = Type.GetType(s); //тип объекта s Console.WriteLine(" Имя типа: {0}", tp.FullName); } catch (System.NullReferenceException) { Console.WriteLine(" Ошибка задания типа"); }
Класс Type предоставляет большой набор свойств для запроса информации по типу, включая следующие: - FullName - возвращает имя типа; - IsClass - определяет, является ли тип классом; - IsAbstract - определяет, является ли тип абстрактным классом; - IsNestedPublic - определяет, является ли тип вложенным и общедоступным; - IsPublic - определяет, является ли данный тип общедоступным; - IsNotPublic - определяет, является ли данный тип защищенным; - IsSealed - определяет, является ли тип конечным (не может быть базовым классом); - IsArray - определяет, представляет ли указанный тип массив; - GUID - возвращает значение типа GUID, ассоциированное с данным типом (такое значение хранится в реестре Windows). - IsNestedAssembly - определяет, является ли тип вложенным и видимым только в своей собственной сборке; - Module - возвращает модуль (DLL) в котором объявлен данный тип; - Namespace - возвращает пространство имен, содержащее данный тип; - Свойство IsByRef позволяет определить, передается ли указанный элемент по типу, а свойство Assembly определяет сборку.
|