我最近下载了 Dropthings 门户,并在代码中发现了一种新语法。
ConfigurationManager.AppSettings["t"] ?? string.Empty
我想知道它是否类似于 NULLABLE 类型,如果 config... 为 NULL,则将使用此值。有人可以澄清我的观察,因为我在 MSDN 中也找不到等效示例吗?
我最近下载了 Dropthings 门户,并在代码中发现了一种新语法。
ConfigurationManager.AppSettings["t"] ?? string.Empty
我想知道它是否类似于 NULLABLE 类型,如果 config... 为 NULL,则将使用此值。有人可以澄清我的观察,因为我在 MSDN 中也找不到等效示例吗?
是的,你是对的,
a ?? b
意思是,a
如果a
不为空,b
如果是
这有点相当于a == null ? b : a
?? _ 运算符称为空值合并运算符,用于为可空值类型或引用类型定义默认值。如果操作数不为空,则返回左侧操作数;否则返回正确的操作数。
例子
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
查看ScottGu 的博客以了解此运算符的简单说明。
您的??
代码中的 实际是 C# 语言中内置的一项功能。它被称为Null Coalescing Operator。您可以在任何 C# 代码中使用它。
string someValue = null;
Console.WriteLine(someValue ?? "Default Value"); //Default Value