c#的is,as,强制类型问题

关于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.所以不知道到底是我算法问题还是没什么效率区被?或者只是是代码的编写习惯而已?

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值