这两个问号(?)在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: 99

The value of result message is: Null Coalescing

以上是 这两个问号(?)在C#中是什么意思? 的全部内容, 来源链接: utcz.com/z/326748.html

回到顶部