【发布时间】:2011-05-10 05:26:19
【问题描述】:
什么是??在这个 C# 语句中是什么意思?
int availableUnits = unitsInStock ?? 0;
【问题讨论】:
-
此链接将回答您的问题:?? Operator (C# Reference)
什么是??在这个 C# 语句中是什么意思?
int availableUnits = unitsInStock ?? 0;
【问题讨论】:
这是空合并运算符。它转换为:availableUnits 等于 unitsInStock 除非 unitsInStock 等于 null,在这种情况下 availableUnits 等于 0。
用于将可空类型转换为值类型。
【讨论】:
根据 MSDN,??运算符称为空值合并运算符,用于为可空值类型和引用类型定义默认值。如果它不为空,则返回左操作数;否则返回正确的操作数。
【讨论】:
??如果不为 null,则运算符返回左侧操作数,否则返回右侧操作数。
【讨论】:
这意味着 availableUnits 变量将为 == unitsInStock,除非 unitsInStock == 0,在这种情况下 availableUnits 为空。
【讨论】:
if (unitsInStock != null)
availableUnits = unitsInStock;
else
availableUnits = 0;
【讨论】: