关于C#:这是if-else语句吗

Is this an if else statement

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What do two question marks together mean in C#?

我刚刚看到下面的代码,不太确定它的意思,也不能谷歌它,因为谷歌省略了??

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

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


它被称为空合并运算符。

如果??左边的值是null,则使用??右边的值,否则使用左边的值。

展开:

1
y = x == null ? 5 : x

1
2
3
4
if(x == null)
     y = 5
else
     y = x


1
2
3
4
if(x == null)
     y = 5
else
     y = x


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

1
2
3
4
5
6
int? x = null;
int? y = null;
int? z = null;

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

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


是的,这是if else语句。请访问以下网址:http://www.webofideas.co.uk/blog/c-sharp-double-question-mark-syntax.aspx