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运算符比较好

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