6

可能重复:
在 C# 中,两个问号一起意味着什么?

我刚刚遇到下面的代码,并不确定它的含义并且无法谷歌搜索,因为谷歌省略了??

int? x = 32;
int  y = x ?? 5;

第二行是某种 if else 语句,是什么??意思

4

4 回答 4

12

它被称为空合并运算符

如果左侧的??值为null,则使用右侧的值, ??否则使用左侧的值。

展开:

y = x == null ? 5 : x

或者

if(x == null)
     y = 5
else
     y = x
于 2012-08-23T13:46:35.820 回答
2
if(x == null)
     y = 5
else
     y = x
于 2012-08-23T13:48:12.130 回答
1

运算符与变量集合一起使用,??并计算第一个非空变量的值。例如,考虑以下代码:

int? x = null;
int? y = null;
int? z = null;

y = 12;
int? a = x ?? y ?? z;

的值a将是 12,因为y它是语句中第一个具有非空值的变量。

于 2012-08-23T13:50:32.523 回答
0

是的,这是 if else 语句。看看这个 URL http://www.webofideas.co.uk/Blog/c-sharp-double-question-mark-syntax.aspx

于 2012-08-23T13:51:08.347 回答