C#基礎(chǔ)知識之GetType與typeof的區(qū)別小結(jié)
在實(shí)際開發(fā)中經(jīng)常需要了解具體對象的類型,所以經(jīng)常會使用GetType()和typeof()、盡管可以得到相應(yīng)的類型、但兩者之間也存在一些差別,接下來我們一起來了解一下吧。
一、GetType()與typeof()
1、typeof():typeof 運(yùn)算符用于獲取某個(gè)類型的 System.Type實(shí)例。 typeof 運(yùn)算符的實(shí)參必須是類型或類型形參的名稱,如以下示例所示:控制臺輸出:
Console.WriteLine($"得到類型為:{typeof(int)}");
Console.WriteLine($"得到類型為:{typeof(string)}");

2、GetType():GetType()方法繼承自O(shè)bject,所以C#中任何對象都具有GetType()方法,它的作用和typeof()相同,返回Type類型的當(dāng)前對象的類型并控制臺輸出:
int i = 1;
var iresult = i.GetType();
Console.WriteLine($"得到類型為:{iresult}");

就拿Int類型來說兩者都是返回System.Int32、但是使用的方式卻不同?那如果采用typeof(iresult)來獲取結(jié)果呢?答案是不能、如下所示

由此可知使用typeof()來獲取類型時(shí)、只能傳入具體的類型如int、string、或者自定義類型等等、使用GetType()則是獲取當(dāng)前對象、實(shí)例的具體類型。
二、總結(jié)
1.Gettype()是從System.Object中繼承的方法,返回值為type類型當(dāng)前對象的類型;typeof(XX)是運(yùn)算符,XX必須是具體的類名、類型名稱等,不可以是變量名。
2.Gettype()必須是創(chuàng)建具體的對象(實(shí)例)才能使用,
3.typeof()的參數(shù)只能是int,string 等類型及自定義類型,不能是實(shí)例。
4.Gettype返回的是實(shí)例的type(類型),而typeof返回的是Class(類)的類型
以上就是兩者的區(qū)別、在使用的過程當(dāng)中可以留意兩者的區(qū)別
到此這篇關(guān)于C#基礎(chǔ)知識之GetType與typeof區(qū)別的文章就介紹到這了,更多相關(guān)C# GetType與typeof區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#使用Jquery zTree實(shí)現(xiàn)樹狀結(jié)構(gòu)顯示 異步數(shù)據(jù)加載
這篇文章主要為大家詳細(xì)介紹了C#使用Jquery zTree實(shí)現(xiàn)樹狀結(jié)構(gòu)顯示和異步數(shù)據(jù)加載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
C#實(shí)現(xiàn)將TextBox綁定為KindEditor富文本
KindEditor?依靠出色的用戶體驗(yàn)和領(lǐng)先的技術(shù)提供富文本編輯功能,是一款非常受歡迎的HTML在線編輯器,下面我們就來看看C#如何將TextBox綁定為KindEditor富文本吧2024-04-04
本文主要介紹了C#中利用GDI來繪制圖形和文字的方法,并提供的簡單的示例供大家參考學(xué)習(xí),希望能夠?qū)Υ蠹矣兴鶐椭?/div> 2016-03-03
C# .NET中Socket簡單實(shí)用框架的使用教程
最近一個(gè)項(xiàng)目因?yàn)橐玫絊ocket傳輸問題,所以決定學(xué)習(xí)一下,將自己學(xué)習(xí)的內(nèi)容總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于C# .NET中Socket簡單實(shí)用框架使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-09-09
Unity實(shí)現(xiàn)模型點(diǎn)擊事件的方法
這篇文章主要介紹了Unity實(shí)現(xiàn)模型點(diǎn)擊事件的方法,本文通過多種方法給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05最新評論

