当在C#中操作一个对象时,经常需要知道该对象所属的类型。这时可以使用C#提供的GetType()
方法获取该对象的实际类型。
语法
GetType()
方法是定义在.Net Framework中的,可以通过C#语言进行调用,其语法格式如下:
public sealed override Type GetType();
返回值:System.Type类型对象,表示该实例对象的实际类型。
示例说明
示例1
using System;
namespace GetTypeDemo
{
class Program
{
static void Main(string[] args)
{
int num = 10;
Type type = num.GetType();
Console.WriteLine("获取变量的类型:{0}", type);
Console.ReadKey();
}
}
}
输出:
获取变量的类型:System.Int32
在以上代码中,定义了一个int类型的变量num
,先使用GetType()
方法获取其实际类型,最后通过Console.WriteLine
函数输出了该变量的实际类型System.Int32
。
示例2
using System;
namespace GetTypeDemo
{
class BaseClass { };
class DerivedClass : BaseClass { };
class Program
{
static void Main(string[] args)
{
BaseClass baseObj = new BaseClass();
DerivedClass derivedObj = new DerivedClass();
Console.WriteLine("获取baseObj的类型:{0}", baseObj.GetType());
Console.WriteLine("获取derivedObj的类型:{0}", derivedObj.GetType());
Console.ReadKey();
}
}
}
输出:
获取baseObj的类型:GetTypeDemo.BaseClass
获取derivedObj的类型:GetTypeDemo.DerivedClass
在以上代码中,定义了一个BaseClass
基类和一个DerivedClass
派生类,分别实例化一个BaseClass
类型的对象baseObj
和一个DerivedClass
类型的对象derivedObj
。通过GetType()
方法获取它们的实际类型并输出。可以看到,baseObj
的实际类型为GetTypeDemo.BaseClass
,而derivedObj
的实际类型为GetTypeDemo.DerivedClass
。
这里需要注意的是,如果在派生类中使用GetType()
获取其实际类型,则返回的是子类的类型。如果需要获取父类的类型,可以通过GetType().BaseType
获取。