[已解决问题] 有人碰到过运算符??吗?
提问时间: 2007-12-13 19:21
悬赏分:20 浏览:417 次
最近看代码碰到??运算符,看IL也能知道其作用,但没找到任何官方点的说明,有人碰到过吗?
提问者:绿蚂蚁 - 初学一级
最佳答案
MSDN上面有说明:
如果 ?? 运算符的左操作数非空,该运算符将返回左操作数,否则返回右操作数。
备注
可空类型可以包含值,或者可以是未定义的。?? 运算符定义当可空类型分配给非可空类型时返回的默认值。如果在将可空类型分配给非可空类型时不使用 ?? 运算符,将生成编译时错误。如果使用强制转换,并且当前未定义可空类型,将发生 InvalidOperationException 异常。 

有关更多信息,请参见可空类型(C# 编程指南)。
2007/12/13 21:55:14 回答者:Klesh Wong


提问者对于答案的评价:多谢Klesh Wong的答案,尤其是补充的部分。也谢谢其他各位兄弟
其它回答(4)
.net2.0新增的可空类型可以包含值,或者可以是null。?? 运算符定义当可空类型分配给非可空类型时返回的默认值。如果在将可空类型分配给非可空类型时不使用 ?? 运算符,将生成编译时错误。具体demo可以看MSDN
8个月前   回答者:张荣华 - 小虾三级
C#高级编程(四)里面的第五章讲到了,LZ可以去详细了解一下
8个月前   回答者:AndyFish - 小虾三级
community server 里面用了很多。
8个月前   回答者:暗香浮动 - 菜鸟二级
return a ?? b;
的意思是
if(a == null) return b; else return a;
8个月前   回答者:狂人 - 菜鸟二级
评论
8个月前   Klesh Wong :
错,应该是:
if (a != null)
  return a;
else
  return b;
8个月前   Klesh Wong :
??是短路式的
比如
a ?? b ?? c ?? d ?? e ......
左边第一个非null值会被返回,然后表达式会停止往下运算
??操作符可以用于可空类型,包括可空的值类型和引用类型,不过可空值类型事实上也是一种引用类型
有点像Javascript的||操作符
   您需要登录以后才能回答!
我的问题    我要提问


快到期问题

> 问题排行榜

有不合适内容,建议去除