要查看英语原文,请勾选“英语”复选框。也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语
本文档已存档,并且将不进行维护。

Type.DeclaringType 属性

获取用来声明当前的嵌套类型或泛型类型参数的类型。

命名空间:  System
程序集:  mscorlib(在 mscorlib.dll 中)

public override Type DeclaringType { get; }

属性值

类型:System.Type
如果当前的类型是嵌套类型,则为表示封闭类型的 Type 对象;如果当前的类型是泛型类型的类型参数,则为泛型类型的定义;如果当前的类型是泛型方法的类型参数,则为用来声明泛型方法的类型;否则为 null

实现

_Type.DeclaringType
_MemberInfo.DeclaringType

如果当前的 Type 对象表示泛型类型的类型参数,则该属性始终返回泛型类型定义。

如果当前的 Type 对象表示泛型方法的类型参数,则该属性返回包含泛型方法定义的类型。 如果该类型是泛型类型,则返回泛型类型定义。 即,下面的代码返回包含 ConvertAll<TOutput> 泛型方法的 List<T> 泛型类的泛型类型定义:


Type t = typeof(List<string>).GetMethod("ConvertAll").GetGenericArguments()[0].DeclaringType;


如果当前 Type 表示泛型类型或泛型方法的定义中的类型参数,则 DeclaringTypeDeclaringMethod 属性标识最初定义泛型类型参数的泛型类型定义或泛型方法定义:

本示例显示派生类中方法的声明类型。


using System;
using System.Reflection;

public abstract class dtype 
{

    public abstract class MyClassA 
    {
        public abstract int m(); 
    }

    public abstract class MyClassB : MyClassA 
    {
    }

    public static void Main(string[] args) 
    { 
        Console.WriteLine("The declaring type of m is {0}.",
            typeof(MyClassB).GetMethod("m").DeclaringType);
    }
}


.NET Framework

受以下版本支持:4、3.5、3.0、2.0、1.1、1.0

.NET Framework Client Profile

受以下版本支持:4、3.5 SP1

受以下版本支持:

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2

.NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求
显示: