【问题标题】:Understanding the null coalescing operator [duplicate]了解空合并运算符 [重复]
【发布时间】:2015-02-18 11:10:28
【问题描述】:

我会欣赏对这行代码的合乎逻辑的解释。会达到什么效果?

x = y ?? "";

其中x 是对象类型,y 是字符串变量。

请注意编译后的程序。

【问题讨论】:

  • 你读过documentation吗?你有什么不明白的? "如果操作数不为null,则返回左侧操作数;否则返回右侧操作数"
  • 您应该先搜索或尝试一下,然后再在这里提问。这是 msdn 的详细文档。 msdn.microsoft.com/en-us/library/ms173224.aspx
  • 这不是三元运算符,我不知道你为什么会这样想。 ?: 和 x?y:z 一样,通常被称为三元运算符,因为它具有三个操作数。这就是三元的意思。这并不意味着任何其他涉及问号的运算符也是三元的。

标签: c# .net


【解决方案1】:

如果 y 为空,它将为 x 分配一个空字符串

它被称为null-coalescing operator。

例如,如果你有

a = b ?? c ?? d ?? e ?? f;

然后它将寻找b 值。如果它不为空,那么a=b 如果b 为空,它将检查c 值。如果它不为空,那么a=c。 如果c 也为空,那么它将检查...(继续)

【讨论】:

    【解决方案2】:

    这转化为长语句。

    if(y != null)
    {
       x = y;
    }
    else
    {
       x = "";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-19
      • 1970-01-01
      • 2019-12-31
      • 2011-10-11
      • 2018-09-27
      • 2012-09-19
      • 2010-09-25
      • 2019-10-11
      相关资源
      最近更新 更多