GetType() 與 typeof 的區別

 

 
                Console.WriteLine(typeof(string));

                Console.WriteLine("".GetType());

這2個返回的結果是一樣的。在網上查了很多資料 有些說 typeof是運算符,而GetType();是對象的方法,並沒有提出對結果有什麼影響。

 

                在很多項目中用到ajaxpro組件,從1.1到2.0 都沒出現過什麼問題。而今天卻遇到了麻煩的問題。

                AjaxPro.Utility.RegisterTypeForAjax(GetType(),Page);

 

                這樣寫在一般頁面中也不會出現什麼問題,但在ascx控件中卻出現了問題,尤其是動態加載ascx情況下。

 

                UserControl.GetType();返回的是ASP.controls_shopworld_extproductadd_ascx ;

                typeof(ExtProductAdd)返回的是JoinCheer.B2bEcom.WebUI.Controls.ShopWorld.ExtProductAdd ;

 

                由此可看到區別 typeof運算符返回的是 命名空間加類名,而GetType()返回的是卻與前者不同。不清楚爲什麼GetType()要重寫成另一種方式。我想這個問題也會影響到反射時發生的問題。以後還是使用typeof運算符比較好

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章