关于C#的强制类型转换,as,is

AS方式:

类型转换

使用选择

Object =>已知引用类型

使用as操作符来完成

Object =>已知值类型

先使用is操作符来进行判断,再用类型强转方式进行转换

已知引用类型之间转换

首先需要相应类型提供转换函数,再用类型强转方式进行转换

已知值类型之间转换

最好使用系统提供的Convert类所涉及的静态方法

比如(FindControl(“txt_Userid”) as TextBox).Text

以前的写法是 ((TextBox) (FindControl(“txt_Userid”)).Text

个人认为最常用的还是如上面所写,Object转换为引用类型最适用,至于你认为为什么?根据我找到的答案我也只能回答,编码习惯

因为as方式要是不成功只会返回一个null.

 

而且在对象进行转换的时候最好加上IS判断对象转换是否能进行,这样可以减少因为转换失败导致的异常

if(Temp is string) 

{

       Stirng sTemp = (string)oTemp

}

Else

{    

       MessageBox.Show(“Change Error!”);

}

而对于网上所说的as效率比强制类型转换效率高的说法并不清楚,因为网上的都是流传的,并没找到有实际数据的实验,个人做了个实验发现强制类型转换1000万次0.7,AS方式是0.8.所以不知道到底是我算法问题还是没什么效率区被?或者只是是代码的编写习惯而已?

posted on 2007-08-22 10:15  ipusr  阅读(514)  评论(0编辑  收藏  举报