双重问号在C#中有什么作用?

时间:2009-10-22 15:49:46

标签: c#

  

可能重复:
  ?? Null Coalescing Operator --> What does coalescing mean?
  What do two question marks together mean in C#?

我在这里找不到这个问题所以我想我会问它。双重问号在C#中做了什么?

示例:

x = y ?? z;

7 个答案:

答案 0 :(得分:61)

这是一个空的合并运算符。除非y为空,否则上面的方法状态x被赋予y的值,在这种情况下,它被赋予z的值。

答案 1 :(得分:16)

如果不为null,则使用y,否则使用z

答案 2 :(得分:14)

来自Wikipedia

这是null-coalesce运算符和简写:

x = (y != null ? y : z);

答案 3 :(得分:7)

如果y为null,则x将设置为z。

答案 4 :(得分:6)

如果值y为null,则赋值z。

例如:

x = Person.Name ?? "No Name";

如果name为null,则x将具有值“No Name”

答案 5 :(得分:1)

正如其他人所说,它是零合并算子。

关于此的MSDN信息:

http://msdn.microsoft.com/en-us/library/ms173224.aspx

答案 6 :(得分:1)

.Net framework 2.0以后允许空值为Nullable值类型。

在这种情况下,它说 如果x具有某个值(即非空)或等于z

,则x等于y