可能是重复问题:
什么是“??”运算符?
我最近在C#中遇到了??
运算符。这个运算符是什么意思,什么时候会使用它呢?
示例:
string name = nameVariable ?? string.Empty;
可能是重复问题:
什么是“??”运算符?
我最近在C#中遇到了??
运算符。这个运算符是什么意思,什么时候会使用它呢?
示例:
string name = nameVariable ?? string.Empty;
??运算符的基本含义是"或者如果它为null,blah"。它相当于:
string name = (nameVariable == null) ? string.Empty : nameVariable;
如果您对该语法不熟悉,那么基本上是这样:
string name;
if (nameVariable == null)
name = string.Empty;
else
name = nameVariable;
这是一个null-合并运算符,它会在左侧为空时返回右侧内容。
有趣的是,你甚至可以这样使用:
string temp = (first ?? second).Text
以您的示例为基础,您将获得以下结果:
string nameVariable = "Diplodocus";
string name = nameVariable ?? string.Empty;
// assigns name the value "Diplodocus"
而且...
string nameVariable = null;
string name = nameVariable ?? string.Empty;
// assigns name the value String.Empty;
请注意,您可以将其与任何引用类型或可空类型一起使用,而不仅仅是字符串。
这相当于检查 null 并在第一个值为 null 时将其设置为某个值。你上面的语句等价于:
string name = nameVariable == null ? string.Empty : nameVariable;
表达式
value1 ?? value2
如果value1不为null,则返回value1,否则返回value2。
这是一个空引用检查,如果 nameVariable 为空,则返回空字符串。