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區別內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: