MSDN上typeof的說明:“用於獲取型別的 System.Type 物件。”
typeof是運算子(一些書叫運算子),這點很重要。在C#中所有的運算子最後都變為函數了。這也就不奇怪為什麼一個看似函式的東西卻被稱為運算子的原因了。
注意返回的是Type物件,內含有許多資訊。如型別的資訊。方法有哪些,屬性有哪些,欄位有哪些。如果用其它的技術,如反射、序列化什麼的,配合使用的話會更方便。
擴充套件資料
typeof(x)中的x,必須是具體的類名、型別名稱等,不可以是變數名稱。
GetType()方法繼承於Object(C#中所有類的基類都是object類。基類是相對於派生類而言的,比方說:如果B類繼承自A類,則A就是B的基類。),所以C#中任何物件都具有GetType()方法,它的作用和typeof()相同,返回Type型別的當前物件的型別。
舉例說明:
有這樣一個變數i: Int32 i = new Int32();
i.GetType()返回值是Int32的型別,但是無法使用typeof(i),因為i是一個變數。如果要使用typeof(),則只能:typeof(Int32),返回的同樣是Int32的型別。
Typeof()是運算子,用於獲取型別的 System.Type 物件。而GetType是方法,獲取當前例項的型別;Typeof()的引數只能是int,string,String,自定義型別,且不能是例項;
MSDN上typeof的說明:“用於獲取型別的 System.Type 物件。”
typeof是運算子(一些書叫運算子),這點很重要。在C#中所有的運算子最後都變為函數了。這也就不奇怪為什麼一個看似函式的東西卻被稱為運算子的原因了。
注意返回的是Type物件,內含有許多資訊。如型別的資訊。方法有哪些,屬性有哪些,欄位有哪些。如果用其它的技術,如反射、序列化什麼的,配合使用的話會更方便。
擴充套件資料
typeof(x)中的x,必須是具體的類名、型別名稱等,不可以是變數名稱。
GetType()方法繼承於Object(C#中所有類的基類都是object類。基類是相對於派生類而言的,比方說:如果B類繼承自A類,則A就是B的基類。),所以C#中任何物件都具有GetType()方法,它的作用和typeof()相同,返回Type型別的當前物件的型別。
舉例說明:
有這樣一個變數i: Int32 i = new Int32();
i.GetType()返回值是Int32的型別,但是無法使用typeof(i),因為i是一個變數。如果要使用typeof(),則只能:typeof(Int32),返回的同樣是Int32的型別。
Typeof()是運算子,用於獲取型別的 System.Type 物件。而GetType是方法,獲取當前例項的型別;Typeof()的引數只能是int,string,String,自定義型別,且不能是例項;