在 C# 中,两个问号一起 (??) 是什么意思?


它是 **空合并** 运算符。空合并运算符 ?? 返回其左操作数的值(如果它不为空);否则,它计算右操作数并返回其结果。如果左操作数计算结果为非空,则 ?? 运算符不会计算其右操作数。

可空类型可以表示一个可能未定义或来自类型域的值。我们可以使用 ?? 运算符在左操作数具有可空类型时返回适当的值。如果我们尝试将可空值类型分配给不可空值类型而不使用 ?? 运算符,我们将得到编译时错误,如果我们强制转换它,则将抛出 InvalidOperationException 异常。

以下是空合并运算符 (??) 运算符的优点:

  • 它用于为可空项(对于值类型和引用类型)定义默认值。

  • 它可以防止运行时 InvalidOperationException 异常。

  • 它帮助我们消除许多冗余的“if”条件。

  • 它适用于引用类型和值类型。

  • 代码变得井井有条且易于阅读。

示例

 在线演示

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

更新于: 2020-08-04

3K+ 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.