我在这里找不到这个问题,所以我想我会问。C#中的双问号有什么作用?
例子:
x = y ?? z;
这是一个空合并运算符。上面的方法表明 x 被赋予 y 的值,除非 y 为空,在这种情况下它被赋予 z 的值。
y
不使用就使用null
,否则使用z
。
如果 a 的值 y 为空,则分配值 z。
例如:
x = Person.Name ?? "No Name";
如果 name 为 null x 将具有值“No Name”
如果 y 为空,x 将被设置为 z。
正如其他人所说,它是空合并运算符。
有关此的 MSDN 信息:
https://docs.microsoft.com/dotnet/csharp/language-reference/operators/null-coalescing-operator
.Net framework 2.0 及更高版本允许 Null 值类型为 Nullable 值类型。
在这种情况下,如果 x 有某个值(即非空),则表示 x 等于 y,否则等于 z