Type.GetNestedType Type.GetNestedType Type.GetNestedType Type.GetNestedType Method

Определение

Возвращает определенный тип, вложенный в текущий объект Type.Gets a specific type nested within the current Type.

Перегрузки

GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags)

При переопределении в производном классе ищет указанный вложенный тип, используя заданные ограничения привязки.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

GetNestedType(String) GetNestedType(String) GetNestedType(String) GetNestedType(String)

Выполняет поиск открытого вложенного типа с заданным именем.Searches for the public nested type with the specified name.

GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags) GetNestedType(String, BindingFlags)

При переопределении в производном классе ищет указанный вложенный тип, используя заданные ограничения привязки.When overridden in a derived class, searches for the specified nested type, using the specified binding constraints.

public:
 abstract Type ^ GetNestedType(System::String ^ name, System::Reflection::BindingFlags bindingAttr);
public abstract Type GetNestedType (string name, System.Reflection.BindingFlags bindingAttr);
abstract member GetNestedType : string * System.Reflection.BindingFlags -> Type
Public MustOverride Function GetNestedType (name As String, bindingAttr As BindingFlags) As Type

Параметры

name
String String String String

Строка, содержащая имя искомого вложенного типа.The string containing the name of the nested type to get.

bindingAttr
BindingFlags BindingFlags BindingFlags BindingFlags

Битовая маска, составленная из одного или нескольких объектов BindingFlags и указывающая, как ведется поиск.A bitmask comprised of one or more BindingFlags that specify how the search is conducted.

-или--or- Нуль, чтобы было возвращено значение null.Zero, to return null.

Возвраты

Если поиск выполнен успешно, возвращается объект, предоставляющий вложенный тип, который соответствует указанным требованиям; в противном случае возвращается null.An object representing the nested type that matches the specified requirements, if found; otherwise, null.

Реализации

Исключения

Комментарии

Можно использовать простое имя вложенного класса для name.Use the simple name of the nested class for name. Не уточните его, указав имя внешнего класса.Do not qualify it with the name of the outer class. Для универсального вложенного класса следует использовать искаженное имя — то есть, добавление грависом и число универсальных параметров.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic parameters. Например, используйте строку «внутреннее`1» для получения универсального вложенных классов Inner<T> (Inner(Of T) в Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Не используйте синтаксис конкретного языка для параметров типа.Do not include language-specific syntax for type parameters.

Следующие BindingFlags фильтра флаги можно использовать для определения, какие вложенные типы будут включены в поиск:The following BindingFlags filter flags can be used to define which nested types to include in the search:

  • Необходимо указать либо BindingFlags.Public или BindingFlags.NonPublic получить возвращаемое значение.You must specify either BindingFlags.Public or BindingFlags.NonPublic to get a return.

  • Укажите BindingFlags.Public для включения в поиск открытые вложенные типы.Specify BindingFlags.Public to include public nested types in the search.

  • Укажите BindingFlags.NonPublic для включения при поиске не являющиеся открытыми вложенные типы (то есть внутренней, закрытые и защищенные вложенные типы).Specify BindingFlags.NonPublic to include non-public nested types (that is, private, internal, and protected nested types) in the search.

Этот метод возвращает только вложенные типы текущего типа.This method returns only the nested types of the current type. Он не выполняет поиск базовые классы для текущего типа.It does not search the base classes of the current type. Чтобы найти типы, вложенные в базовых классах, вы должны пройти в иерархии наследования, вызвав GetNestedType на каждом уровне.To find types that are nested in base classes, you must walk the inheritance hierarchy, calling GetNestedType at each level.

BindingFlags.Instance и BindingFlags.Static игнорируются.and BindingFlags.Static are ignored.

Вызов этого метода только с BindingFlags.Public флаг или только BindingFlags.NonPublic флаг Возвращает указанные вложенные типы и другие флаги не требуются.Calling this method with only the BindingFlags.Public flag or only the BindingFlags.NonPublic flag will return the specified nested types and does not require any other flags.

Дополнительные сведения см. в разделе System.Reflection.BindingFlags.See System.Reflection.BindingFlags for more information.

Если текущий Type представляет параметр типа в определении универсального типа или метода, этот метод ищет вложенные типы ограничения класса.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

Если вложенный тип является универсальным, этот метод возвращает его определение универсального типа.If a nested type is generic, this method returns its generic type definition. Это справедливо, даже если включающий универсальный тип является закрытым сконструированным типом.This is true even if the enclosing generic type is a closed constructed type.

Примечание

Если текущий Type представляет универсальный тип, определенный в C#, Visual Basic или C++, его вложенные типы являются универсальными, даже если они имеют собственные имеет тех универсальных параметров.If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. Это не всегда справедливо для вложенных типов, определенных в динамических сборках или скомпилированные с использованием Ilasm.exe (ассемблер IL).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Сведения о вложенных универсальных типов и о создании вложенных универсальных типов из их определений универсальных типов, см. в разделе MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Дополнительно

GetNestedType(String) GetNestedType(String) GetNestedType(String) GetNestedType(String)

Выполняет поиск открытого вложенного типа с заданным именем.Searches for the public nested type with the specified name.

public:
 virtual Type ^ GetNestedType(System::String ^ name);
public Type GetNestedType (string name);
abstract member GetNestedType : string -> Type
override this.GetNestedType : string -> Type
Public Function GetNestedType (name As String) As Type

Параметры

name
String String String String

Строка, содержащая имя искомого вложенного типа.The string containing the name of the nested type to get.

Возвраты

Объект, представляющий открытый вложенный тип с указанным именем, если тип есть, и null, если такого типа нет.An object representing the public nested type with the specified name, if found; otherwise, null.

Реализации

Исключения

Комментарии

Поиск name чувствителен к регистру.The search for name is case-sensitive.

Можно использовать простое имя вложенного класса для name.Use the simple name of the nested class for name. Не уточните его, указав имя внешнего класса.Do not qualify it with the name of the outer class. Для универсального вложенного класса следует использовать искаженное имя — то есть, добавление грависом и число универсальных аргументов.For a generic nested class, use the mangled name - that is, append a grave accent and the number of generic arguments. Например, используйте строку «внутреннее`1» для получения универсального вложенных классов Inner<T> (Inner(Of T) в Visual Basic).For example, use the string "Inner`1" to get the generic nested class Inner<T> (Inner(Of T) in Visual Basic). Не используйте синтаксис конкретного языка для параметров типа.Do not include language-specific syntax for type parameters.

В следующей таблице показаны, какие члены базового класса возвращаются Get методы при отражении типа.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Тип членаMember Type StaticStatic СтатическимNon-Static
КонструкторConstructor НетNo НетNo
ПолеField НетNo Да.Yes. Поле всегда равно по имени и подписи.A field is always hide-by-name-and-signature.
событиеEvent НеприменимоNot applicable Правило системы общих типов является то, что наследование осуществляется так же, как и для методов, реализующих свойство.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Отражении свойства по имени и подписи.Reflection treats properties as hide-by-name-and-signature. См. Примечание 2 ниже.See note 2 below.
МетодMethod НетNo Да.Yes. Метод (виртуальные и невиртуальные) можно скрыть по имени или по имени и подписи.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Вложенный типNested Type НетNo НетNo
Свойство.Property НеприменимоNot applicable Правило системы общих типов является то, что наследование осуществляется так же, как и для методов, реализующих свойство.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Отражении свойства по имени и подписи.Reflection treats properties as hide-by-name-and-signature. См. Примечание 2 ниже.See note 2 below.
  1. По имени и подписи считает, что все части сигнатуры, включая настраиваемые модификаторы, возвращают типы, типы параметров, меток и соглашения о неуправляемых вызовах.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Это двоичное сравнение.This is a binary comparison.

  2. Для отражения свойства и события являются по имени и подписи.For reflection, properties and events are hide-by-name-and-signature. Если у вас есть свойство с get и set в базовом классе, но производный класс имеет только метод доступа get, свойство производного класса скрывает свойство базового класса, и вы не сможете получить доступ к методу set в базовом классе.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Настраиваемые атрибуты не являются частью система общих типов CTS.Custom attributes are not part of the common type system.

Если текущий Type представляет параметр типа в определении универсального типа или метода, этот метод ищет вложенные типы ограничения класса.If the current Type represents a type parameter in the definition of a generic type or generic method, this method searches the nested types of the class constraint.

Если вложенный тип является универсальным, этот метод возвращает его определение универсального типа.If a nested type is generic, this method returns its generic type definition. Это справедливо, даже если включающий универсальный тип является закрытым сконструированным типом.This is true even if the enclosing generic type is a closed constructed type.

Примечание

Если текущий Type представляет универсальный тип, определенный в C#, Visual Basic или C++, его вложенные типы являются универсальными, даже если они имеют собственные имеет тех универсальных параметров.If the current Type represents a generic type defined in C#, Visual Basic, or C++, its nested types are all generic even if they have no generic parameters of their own. Это не всегда справедливо для вложенных типов, определенных в динамических сборках или скомпилированные с использованием Ilasm.exe (ассемблер IL).This is not necessarily true of nested types defined in dynamic assemblies or compiled with the Ilasm.exe (IL Assembler).

Сведения о вложенных универсальных типов и о создании вложенных универсальных типов из их определений универсальных типов, см. в разделе MakeGenericType.For information on nested generic types, and on constructing nested generic types from their generic type definitions, see MakeGenericType.

Дополнительно

Применяется к