Type.GetNestedType 方法

2013/12/13

当在派生类中重写时,使用指定绑定约束搜索指定嵌套类型。

Namespace:  System
程序集:  mscorlib(位于 mscorlib.dll 中)

public abstract Type GetNestedType(
	string name,
	BindingFlags bindingAttr
)

参数

name
类型: System.String
包含要获取的嵌套类型的名称的字符串。
bindingAttr
类型: System.Reflection.BindingFlags
一个位掩码,由一个或多个指定搜索执行方式的 BindingFlags 组成。
- 或 -
零,以返回 null

返回值

类型: System.Type
表示符合指定要求的嵌套类型的 Type 对象(如果找到的话);否则为 null

异常条件
ArgumentNullException

namenull

对于 name,应使用嵌套类的简单名称。不要使用外层类的名称来限定它。对于泛型嵌套类,使用改变后的名称 - 即末尾附加了抑音符和泛型参数的数目。例如,使用字符串“Inner`1”获取泛型嵌套类 Inner<T>(在 Visual Basic 中为 Inner(Of T))。不要对类型参数使用语言特定的语法。

可以使用下列 BindingFlags 筛选标志定义包含在搜索中的嵌套类型:

  • 为了获取返回值,必须指定 BindingFlags.PublicBindingFlags.NonPublic

  • 指定 BindingFlags.Public 可在搜索中包含公共嵌套类型。

  • 指定 BindingFlags.NonPublic 可在搜索中包含非公共嵌套类型(即私有嵌套类型和受保护的嵌套类型)。

此方法只返回当前类型的嵌套类型。它不搜索当前类型的基类。若要查找嵌套在基类中的类型,必须搜索继承层次结构,并在每一层都调用 GetNestedType

忽略 BindingFlags.InstanceBindingFlags.Static

仅用 BindingFlags.Public 标志或仅用 BindingFlags.NonPublic 标志调用此方法将返回指定嵌套类型,并且不需要任何其他标志。

有关更多信息,请参见 System.Reflection.BindingFlags

如果当前 Type 表示泛型类型或泛型方法的定义中的类型参数,则此方法搜索类约束的嵌套类型。

如果嵌套类型为泛型,则此方法返回其泛型类型定义。即使封闭泛型类型为封闭构造类型,也是如此。

说明注意:

如果当前 Type 表示在 C#、Visual Basic 或 C++ 中定义的泛型类型,则其嵌套类型都是泛型,即使它们没有自己的泛型参数也是如此。对于动态程序集中定义的嵌套类型或使用 Microsoft 中间语言 (MSIL) 汇编程序编译的嵌套类型,则不一定如此。

有关嵌套泛型类型以及基于泛型类型定义构造嵌套泛型类型的信息,请参见 MakeGenericType

Windows Phone OS

受以下版本支持: 8.0, 7.1, 7.0

Windows Phone

显示:
© 2014 Microsoft