什么??在C#中意味着什么?

时间:2010-11-15 12:49:48

标签: c# .net .net-3.5 nullable

  

可能重复:
  What do two question marks together mean in C#?

是什么?在这个C#语句中意味着什么?

int availableUnits = unitsInStock ?? 0;

5 个答案:

答案 0 :(得分:4)

这是空合并运算符。它转换为:availableUnits等于unitsInStock,除非unitsInStock等于null,在这种情况下availableUnits等于0.

用于将可空类型更改为值类型。

答案 1 :(得分:3)

if (unitsInStock != null)
    availableUnits = unitsInStock;
else
    availableUnits = 0;

答案 2 :(得分:2)

  

??如果左侧操作数不为null,则返回左侧操作数,否则返回右侧操作数。

?? Operator (C# Reference)

答案 3 :(得分:1)

根据MSDN,?? operator被称为null-coalescing运算符,用于为可空值类型和引用类型定义默认值。如果它不为null,则返回左侧操作数;否则它返回正确的操作数。

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

答案 4 :(得分:1)

这意味着availableUnits变量将是== unitsInStock,除非unitsInStock == 0,在这种情况下,availableUnits为null。