【问题标题】:What does ?? mean in C#? [duplicate]有什么作用??在 C# 中是什么意思? [复制]
【发布时间】:2011-05-10 05:26:19
【问题描述】:

可能重复:
What do two question marks together mean in C#?

什么是??在这个 C# 语句中是什么意思?

int availableUnits = unitsInStock ?? 0;

【问题讨论】:

标签: c# .net .net-3.5 nullable


【解决方案1】:

这是空合并运算符。它转换为:availableUnits 等于 unitsInStock 除非 unitsInStock 等于 null,在这种情况下 availableUnits 等于 0。

用于将可空类型转换为值类型。

【讨论】:

    【解决方案2】:

    根据 MSDN,??运算符称为空值合并运算符,用于为可空值类型和引用类型定义默认值。如果它不为空,则返回左操作数;否则返回正确的操作数。

    退房
    http://msdn.microsoft.com/en-us/library/ms173224.aspx

    【讨论】:

      【解决方案3】:

      ??如果不为 null,则运算符返回左侧操作数,否则返回右侧操作数。

      ?? Operator (C# Reference)

      【讨论】:

        【解决方案4】:

        这意味着 availableUnits 变量将为 == unitsInStock,除非 unitsInStock == 0,在这种情况下 availableUnits 为空。

        【讨论】:

          【解决方案5】:
          if (unitsInStock != null)
              availableUnits = unitsInStock;
          else
              availableUnits = 0;
          

          【讨论】:

            猜你喜欢
            • 2015-06-25
            • 2011-05-09
            • 2021-08-29
            • 1970-01-01
            • 2011-04-18
            • 2019-09-12
            • 2019-12-08
            • 1970-01-01
            • 2020-10-27
            相关资源
            最近更新 更多