C#基础知识之GetType与typeof的区别小结
作者:陈大宝
在实际开发中经常需要了解具体对象的类型,所以经常会使用GetType()和typeof()、尽管可以得到相应的类型、但两者之间也存在一些差别,接下来我们一起来了解一下吧。
一、GetType()与typeof()
1、typeof():typeof 运算符用于获取某个类型的 System.Type实例。 typeof 运算符的实参必须是类型或类型形参的名称,如以下示例所示:控制台输出:
Console.WriteLine($"得到类型为:{typeof(int)}"); Console.WriteLine($"得到类型为:{typeof(string)}");
2、GetType():GetType()方法继承自Object,所以C#中任何对象都具有GetType()方法,它的作用和typeof()相同,返回Type类型的当前对象的类型并控制台输出:
int i = 1; var iresult = i.GetType(); Console.WriteLine($"得到类型为:{iresult}");
就拿Int类型来说两者都是返回System.Int32、但是使用的方式却不同?那如果采用typeof(iresult)来获取结果呢?答案是不能、如下所示
由此可知使用typeof()来获取类型时、只能传入具体的类型如int、string、或者自定义类型等等、使用GetType()则是获取当前对象、实例的具体类型。
二、总结
1.Gettype()是从System.Object中继承的方法,返回值为type类型当前对象的类型;typeof(XX)是运算符,XX必须是具体的类名、类型名称等,不可以是变量名。
2.Gettype()必须是创建具体的对象(实例)才能使用,
3.typeof()的参数只能是int,string 等类型及自定义类型,不能是实例。
4.Gettype返回的是实例的type(类型),而typeof返回的是Class(类)的类型
以上就是两者的区别、在使用的过程当中可以留意两者的区别
到此这篇关于C#基础知识之GetType与typeof区别的文章就介绍到这了,更多相关C# GetType与typeof区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!