是什么 ”??” 运营商的?

这个问题在这里已经有了答案:

  • C#中两个问号在一起意味着什么? 16个答案

  • 它被称为“空合并运算符”,其工作原理如下:

    而不是:

    int? number = null;
    int result = number == null ? 0 : number;
    

    你现在可以做:

    int result = number ?? 0;
    

    它是空合并运算符。 它是在C#2中引入的。

    表达式a ?? b的结果 如果那不是空的, a ?? ba ,否则b 。 除非需要,否则b不会被评估。

    两件好事:

  • 表达式的整体类型是第二个操作数的类型,当您使用可为空的值类型时这很重要:

    int? maybe = ...;
    int definitely = maybe ?? 10;
    

    (请注意,不能将不可为空的值类型用作第一个操作数 - 它毫无意义。)

  • 关联性规则意味着您可以很容易地将其链接起来。 例如:

    string address = shippingAddress ?? billingAddress ?? contactAddress;
    
  • 这将使用运费,帐单或联系地址中的第一个非空值。


    这是合并操作员。 它基本上是以下的简写

    x ?? new Student();
    x != null ? x : new Student();
    

    有关运营商的MSDN文档

  • http://msdn.microsoft.com/en-us/library/ms173224.aspx
  • 链接地址: http://www.djcxy.com/p/53827.html

    上一篇: What is the "??" operator for?

    下一篇: What is the purpose of 'var'?