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()則是獲取當前物件、例項的具體型別。

二、總結

以上就是兩者的區別、在使用的過程當中可以留意兩者的區別、另外祝園友們六一快樂。