System.Object.GetType 方法

方法描述

获取当前实例的 Type。

语法定义(C# System.Object.GetType 方法 的用法)

public Type GetType()

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
返回值 System.Type 当前实例的准确运行时类型。

提示和注释

对于具有相同运行时类型的两个对象 x 和 y,Object.ReferenceEquals(x.GetType(),y.GetType()) 返回 true。 下面的示例使用带 ReferenceEquals 方法的 GetType 方法来确定一个数值是否与其他两个数值为相同类型。

C#

VB

复制

int n1 = 12;

int n2 = 82;

long n3 = 12;

Console.WriteLine("n1 and n2 are the same type: {0}",

Object.ReferenceEquals(n1.GetType(), n2.GetType()));

Console.WriteLine("n1 and n3 are the same type: {0}",

Object.ReferenceEquals(n1.GetType(), n3.GetType()));

// The example displays the following output:

// n1 and n2 are the same type: True

// n1 and n3 are the same type: False

注意

若要确定对象是否为特定的类型,可以使用您的语言类型比较关键字或构建。 在 Visual Basic 中,您也可以使用 TypeOf…Is 关键字(例如,is)。

Type 对象公开与当前 Object 的类关联的元数据。

System.Object.GetType 方法例子

下面的代码示例说明 GetType 返回当前实例的运行时类型。

using System;

public class MyBaseClass {
}

public class MyDerivedClass: MyBaseClass {
}

public class Test 
{
   public static void Main() 
   {
      MyBaseClass myBase = new MyBaseClass();
      MyDerivedClass myDerived = new MyDerivedClass();
      object o = myDerived;
      MyBaseClass b = myDerived;

      Console.WriteLine("mybase: Type is {0}", myBase.GetType());
      Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
      Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
      Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
   }
}
// The example displays the following output:
//    mybase: Type is MyBaseClass
//    myDerived: Type is MyDerivedClass
//    object o = myDerived: Type is MyDerivedClass
//    MyBaseClass b = myDerived: Type is MyDerivedClass

异常

异常 异常描述

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.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 系统要求。