首页 新闻 会员 周边 捐助

C#中两个问号是什么意思 "??"

0
悬赏园豆:5 [已解决问题] 解决于 2011-09-09 10:29

如 string s = a ?? b;

 

阿龍的主页 阿龍 | 菜鸟二级 | 园豆:268
提问于:2011-09-09 10:16
< >
分享
最佳答案
2

就是如果为null,则运行后面的,否则返回前面的。

obj = obj1 ?? new Object()
//等价于:
if (obj == null)
obj
= new Object();
else
obj
= obj1;

收获园豆:5
artwl | 专家六级 |园豆:16736 | 2011-09-09 10:19

有点问题吧!?

obj = obj1 ??new Object();

//等价于:

if (obj1 == null)

  obj = new Object();

else

  obj = obj1;

_天光云影 | 园豆:70 (初学一级) | 2012-10-12 17:45
其他回答(3)
0

楼上正解

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2011-09-09 10:22
0

Yes  “?”很多多了解。

cicadachina | 园豆:215 (菜鸟二级) | 2011-09-19 23:04
0

可以理解为:为空判断赋值预算符!

如果为空就将后面的表达式的值赋给它。

如:

int a=(page ?? 20) - 3;

// page==null 时a=20-3=17

// page!=null时a=page-3

CooMark | 园豆:205 (菜鸟二级) | 2011-12-25 20:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册