【问题标题】:What do we mean by ? OR ???我们是什么意思?或者 ???
【发布时间】:2010-12-02 04:05:49
【问题描述】:

有人告诉我为什么我们使用这些的区别和例子。我知道它是 NULL 值。

【问题讨论】:

    标签: c# language-features


    【解决方案1】:

    x ? a : b 表示if (x == true) then a else b

    x ?? y 表示if (x != null) then x else y

    但有一点不同,因为两者都是表达式,而不是像 IF 这样的语句。

    这允许您编写 var z = x ? a : b; 以将声明和赋值组合在一行中,而不是多行替代:

    type z;
    if (x == true)
      z = a;
    else
      z = b;
    

    Type?Nullable<Type> 的简写

    【讨论】:

    • 添加使用 ? 使值类型可以为空,并且您拥有三重奏,IMO。
    • 类型?和 ??在 c# 2.0 中引入。
    【解决方案2】:

    ?是三元运算符,在C#中正式命名为条件运算符。

    ??是空合并运算符

    条件运算符对于简短、简洁的 if/else 语句很有用

    null 合并运算符可用于返回一个非空值,否则返回另一个值(运算符右侧的值)

    【讨论】:

    • a三元运算符。它的名字是条件运算符。
    • 你每天都会学到一些东西 :)。我查了一下,你肯定是正确的,我会改变它。
    【解决方案3】:

    有两个不同的运算符使用'?'

    • Conditional 操作员: 条件?那么:否则 if condition is true then 'then part' else 'else part',这个操作符就像 if-else。

    • null-coalescing 运营商: 这 ??运算符称为空值合并运算符,用于为可空值类型和引用类型定义默认值。如果它不为空,则返回左操作数;否则返回正确的操作数。 // y = x,除非 x 为空,在这种情况下 y = -1。 整数 y = x ?? -1;

    【讨论】:

      【解决方案4】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-05
        • 2018-08-29
        • 1970-01-01
        • 2020-12-31
        • 1970-01-01
        • 2021-11-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多