这两个问号(?)在C#中是什么意思?
它是null 运算符。空合并运算符?? 如果不为空,则返回其左操作数的值;否则,它将评估右侧操作数并返回其结果。?? 如果左侧操作数的计算结果为非null,则运算符不会评估其右侧操作数。
可为空的类型可以表示一个不确定的值,也可以来自该类型的域。我们可以使用?? 当左操作数具有可为空的类型时,运算符将返回适当的值。如果我们尝试在不使用??的情况下将可为空的值类型分配给不可为空的值类型 运算符,我们将得到一个编译时错误,如果我们强制转换它,将抛出InvalidOperationException异常。
以下是Null-Coalescing运算符(??)运算符的优点-
它用于为可为空的项定义默认值(对于值类型和引用类型)。
它防止运行时InvalidOperationException异常。
它有助于我们消除许多多余的“如果”条件。
它适用于引用类型和值类型。
代码变得井井有条,可读性强。
示例
using System;namespace MyApplication{
class Program{
static void Main(string[] args){
int? value1 = null;
int value2 = value1 ?? 99;
Console.WriteLine("Value2: " + value2);
string testString = "Null Coalescing";
string resultString = testString ?? "Original string is null";
Console.WriteLine("The value of result message is: " + resultString);
}
}
}
输出结果
上面示例的输出如下。
Value2: 99The value of result message is: Null Coalescing
以上是 这两个问号(?)在C#中是什么意思? 的全部内容, 来源链接: utcz.com/z/326748.html