C#中GetType()与Typeof()的区别
在C#中,GetType()和Typeof()都是C#中检索类型信息的两个重要方法。本文将详细讲解这两个方法的区别。
GetType()
GetType()方法是用于确定当前对象的运行时类型的方法,返回的是实例对象的类型。由于C#是强类型语言,每个变量、属性或方法在编译时都必须指定明确的类型,当程序运行时变量实际引用的对象可能是一个继承树形结构中的任意一个子类型,此时可以使用GetType()动态获取当前实例对象的类型。
示例1
using System;
class Program
{
static void Main(string[] args)
{
int i = 10;
Console.WriteLine(i.GetType().ToString());
}
}
输出结果:
System.Int32
示例2
using System;
class Animal { }
class Dog : Animal { }
class Program
{
static void Main(string[] args)
{
Animal a = new Animal();
Dog d = new Dog();
Console.WriteLine(a.GetType().ToString());
Console.WriteLine(d.GetType().ToString());
}
}
输出结果:
Animal
Dog
Typeof()
Typeof()方法返回的是指定类型的类型对象。这个对象描述了类型本身的信息,而不是包含该类型的实例的信息。通过Typeof()方法获取类型对象后,可以根据该类型对象来创建新实例、调用静态成员等。
示例1
using System;
class Program
{
static void Main(string[] args)
{
Type t = typeof(int);
Console.WriteLine(t.FullName);
}
}
输出结果:
System.Int32
示例2
using System;
class Animal { }
class Dog : Animal { }
class Program
{
static void Main(string[] args)
{
Type animalType = typeof(Animal);
Console.WriteLine(animalType.FullName);
Type dogType = typeof(Dog);
Console.WriteLine(dogType.FullName);
}
}
输出结果:
Animal
Dog
总结
本文介绍了C#中GetType()和Typeof()两个方法的区别。GetType()方法动态返回当前对象的类型,而Typeof()方法返回指定类型的类型对象。在实际开发中,根据需要选择这两个方法进行类型的检索。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#中GetType()与Typeof()的区别 - Python技术站