Type.DeclaringType 属性

获取声明该成员的类。

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

语法

声明
Public Overrides ReadOnly Property DeclaringType As Type
用法
Dim instance As Type
Dim value As Type

value = instance.DeclaringType
public override Type DeclaringType { get; }
public:
virtual property Type^ DeclaringType {
    Type^ get () override;
}
/** @property */
public Type get_DeclaringType ()
public override function get DeclaringType () : Type

属性值

声明该成员的类的 Type 对象。如果该类型是嵌套类型,则该属性返回封闭类型。

备注

此属性实现从 MemberInfo 继承的抽象属性。

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

  • 如果 DeclaringMethod 属性返回 MethodInfo,该 MethodInfo 表示泛型方法定义,当前 Type 对象表示该泛型方法定义的类型参数。

  • 如果 DeclaringMethod 属性 (Property) 返回 空引用(在 Visual Basic 中为 Nothing),则 DeclaringType 属性 (Property) 始终返回一个表示泛型类型定义的 Type 对象,当前 Type 对象表示该泛型类型定义的类型参数。

对于泛型方法的类型形参,此属性 (Property) 返回包含该泛型方法定义的类型。

示例

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

Imports System
Imports System.Reflection
Imports Microsoft.VisualBasic

Public MustInherit Class dtype

    Public MustInherit Class MyClassA
        Public MustOverride Function m() As Integer
    End Class

    Public MustInherit Class MyClassB
        Inherits MyClassA
    End Class

    Public Shared Sub Main()
        Console.WriteLine("The declaring type of m is {0}.", _
           GetType(MyClassB).GetMethod("m").DeclaringType)
    End Sub
End Class
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);
    }
}
using namespace System;
using namespace System::Reflection;

public ref class dtype abstract
{
public:
   ref class MyClassA abstract
   {
   public:
      virtual int m() = 0;
   };

   ref class MyClassB abstract: public MyClassA{};
};

int main()
{
   Console::WriteLine( "The declaring type of m is {0}.", dtype::MyClassB::typeid->GetMethod( "m" )->DeclaringType );
}
import System.*;
import System.Reflection.*;

abstract public class Dtype
{
    abstract public class MyClassA
    {
        public abstract int M();
    } //MyClassA
      
    abstract public class MyClassB extends MyClassA
    {
    } //MyClassB
   
    public static void main(String[] args)
    {
        Console.WriteLine("The declaring type of M is {0}.", 
        MyClassB.class.ToType().GetMethod("M").get_DeclaringType());
    } //main
} //Dtype

平台

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

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

版本信息

.NET Framework

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

.NET Compact Framework

受以下版本支持:2.0、1.0

请参见

参考

Type 类
Type 成员
System 命名空间
MemberInfo
ReflectedType