最近使用了获取类的类型typeof,后来发现还有GetType方法可以使用,分不清楚他们两的区别,特意查了一下,下面内容介绍一下两者的区别和使用案例,分析给大家。
在C#中的所有类型都在运行时由System.Type的实例表示,可以用两种基本方法来获取System.Type对象,那么就是typeof和GetType,他们都可以获取System.Type对象,它们只有使用区别,具体区别如下:.
使用案例:
//案例类
public class Customer
{
public int id { get; set; }
public string name { get; set; }
}
static void Main(string[] args)
{
Customer customer = new Customer()
{
id = 2,
name = "张学友",
};
Console.WriteLine(customer.GetType().Name); // Customer
Console.WriteLine(typeof(Customer).Name); // Point
//他们是等效的,只不过运行的环节不同
Console.WriteLine(customer.GetType() == typeof(Customer)); //true
//显示全名,包括命名空间,下面必须赋值后才能使用
Console.WriteLine(customer.name.GetType().FullName); // System.String
Console.WriteLine(customer.age.GetType().Name); // Int32
//另一种使用,从var获取变量类型,这个只支持GetType()
var name = "dotnet开发跳槽";
Type typename = name.GetType();
Console.WriteLine(typename);//全名:System.String
Console.WriteLine(typename.Name);//String
}
//输出Customer,Customerture,System.String,Int32 ,System.String,String
结语
本文介绍了typeof和GetType的使用区别, 希望本文对大家学习和工作有一定参考价值,谢谢大家的支持。