typeof 用於獲取類型的 System.Type 對象
MSDN上typeof的說明:“用於獲取類型的 System.Type 對象。”
typeof是操作符(一些書叫bai運算符),這點很重要。在C#中所有的操作符最后都變為函數了。這也就不奇怪為什么一個看似函數的東西卻被稱為操作符的原因了。
注意返回的是Type對象,內含有許多信息。如類型的信息。方法有哪些,屬性有哪些,字段有哪些。如果用其它的技術,如反射、序列化什么的,配合使用的話會更方便。
typeof括號中的不能是變量名
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,自定義類型,且不能是實例;