强制类型转换和as运算符,区别在哪 强制类型转换:转换不成功会抛出异常,对引用类型和值类型都适用。as运算符:转换不成功得到一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最常用的考虑就是要看下面的语句是否需要判断返回是否为null。如果不需要判断,那么就用前者就好了。关于“类型转换”的一个常见误解,可以参考以前的一个帖子:http://bbs.csdn.net/topics/360039451 所以经常用 as,转换完记得判断是不是null 强制类型转换:转换不成功会抛出异常,对引用类型和值类型都适用。as运算符:转换不成功得到一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。 顶 大多数时候我们使用as的场景,此时使用is恰好是画蛇添足的,所以才用as(根据返回的结果是否是null来得到与not is一样的作用,而且还能得到最终的转换结果(而is根本没有转换结果这一说)。所以说“is和as配合”,我反而糊涂了。 if(a is B){ B b = a as B;}我是用的类似的代码 msdn已经告诉你答案了http://msdn.microsoft.com/zh-cn/library/cscsdfbt(v=vs.80).aspx自己看把,看完以后你就明白sp1234说的是啥了as 本身等效与expression is type ? (type)expression : (type)null所以在后续使用上is判定不是必须的,而null判定反而是必须的 进制取余的问题 asp.net网站调用c++写的dll操作数据库,怎么调试? Socket.BeginSend抛出异常:10057,很奇怪,网上也搜不到答案 怎么判断数据源DataSet是什么状态呢!急 字符串处理!会正则的请进~~~~~~~~~ 如何才能创建和保存单色位图啊?得是能够创建graphics的。 c#如何通过Microsotf.JScript来解析JS里的内容? vs 2010 项目转换问题 请问C#能否用于PDA开发? win2003+vs.net2003建不了web项目,老说访问限制 C#可以使用哪些嵌入式数据库 语音播报时,不能操作 怎么处理
as运算符:转换不成功得到一个null值,不会抛出异常;仅适用于引用类型,不能用于值类型。
顶
{
B b = a as B;
}
我是用的类似的代码
http://msdn.microsoft.com/zh-cn/library/cscsdfbt(v=vs.80).aspx自己看把,看完以后你就明白sp1234说的是啥了as 本身等效与
expression is type ? (type)expression : (type)null所以在后续使用上is判定不是必须的,而null判定反而是必须的