Универсальные типы и отражение (Руководство по программированию в C#)

Так как среда CLR имеет доступ к информации универсальных типов во время выполнения, можно использовать отражение для получения информации об универсальных типах таким же образом, как и о не универсальных типах. Дополнительные сведения см. в разделе Универсальные типы во время выполнения (Руководство по программированию в C#).

В платформе .NET Framework 2,0 несколько новых членов добавлены в класс Type для предоставления информации об универсальных типах во время выполнения. Дополнительную информацию о том, как использовать эти методы и свойства, см. в документацию по этим классам. Пространство имен System.Reflection.Emit также содержит новые члены, которые поддерживают универсальность. Дополнительные сведения см. в разделе Практическое руководство. Определение универсального типа с порождаемым отражением.

Список неизменных условий для понятий, используемых в универсальном отражении, см. в заметках к свойству IsGenericType.

Имя члена класса System.Type

Описание

IsGenericType

В случае универсального типа возвращает значение true.

GetGenericArguments

Возвращает массив объектов Type, представляющих аргументы типа, поставляемые для созданного типа, или параметры типа для определения универсального типа.

GetGenericTypeDefinition

Возвращает определение лежащего в основе универсального типа для текущего создаваемого типа.

GetGenericParameterConstraints

Возвращает массив объектов Type, которые представляют ограничения, накладываемые на параметр текущего универсального типа.

ContainsGenericParameters

Возвращает значение true, если тип или любые включающие его типы или методы содержат параметры типа, для которых определенные типы не были предоставлены.

GenericParameterAttributes

Возвращает комбинацию флагов GenericParameterAttributes, описывающих особые ограничения параметра текущего универсального типа.

GenericParameterPosition

Для объекта Type, представляющего параметр типа, возвращает положение параметра типа в списке параметров типа для определения универсального типа или определения универсального метода, использованного для объявления этого параметра типа.

IsGenericParameter

Возвращает значение, которое показывает, представляет ли текущий Type параметр типа для универсального типа или определения метода.

IsGenericTypeDefinition

Возвращает значение, которое показывает, представляет ли текущий Type определение универсального типа, из которого могут быть созданы другие универсальные типы. Возвращает значение true, если тип представляет определение универсального типа.

DeclaringMethod

Возвращает универсальный метод, который определяет параметр текущего универсального типа, или значение NULL, если параметр типа не был определен универсальным методом.

MakeGenericType

Замещает элементы массива типов для параметров типа определения текущего универсального типа и возвращает объект Type, представляющий созданный в результате тип.

Кроме того, новые члены добавляются в класс MethodInfo, для предоставления информации об универсальных типах во время выполнения. Список неизменяемых условий для терминов, используемых для отражения универсальных методов, см. в примечаниях к свойству IsGenericMethod.

Имя члена класса System.Reflection.MemberInfo

Описание

IsGenericMethod

В случае универсального метода возвращает значение true.

GetGenericArguments

Возвращает массив объектов Type, представляющих аргументы типа для созданного универсального метода или параметры типа для определения универсального метода.

GetGenericMethodDefinition

Возвращает определение лежащего в основе универсального метода для текущего создаваемого метода.

ContainsGenericParameters

Возвращает значение true, если метод или любые включающие его типы содержат какие-либо параметры типа, для которых определенные типы не были предоставлены.

IsGenericMethodDefinition

Возвращает значение true, если текущий объект MethodInfo представляет определение универсального метода.

MakeGenericMethod

Заменяет параметры типа элементами массива типов для определения текущего универсального метода и возвращает объект MethodInfo, представляющий итоговый сконструированный метод.

См. также

Ссылки

Универсальные шаблоны (Руководство по программированию на C#)

Основные понятия

Руководство по программированию на C#

Другие ресурсы

Отражение и универсальные типы

Универсальные шаблоны в платформе .NET Framework