C# GetType():获取当前实例的 Type

  • Post category:C#

当在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获取。