我们的意思是什么?要么 ???

时间:2010-12-02 04:05:49

标签: c# language-features

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

4 个答案:

答案 0 :(得分:9)

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>

的简写

答案 1 :(得分:2)

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

??是空合并运算符

条件运算符对于简短的if / else语句

非常有用

null合并运算符对于返回一个值非常有用,如果它不为null,否则返回另一个值(运算符右侧的值)

答案 2 :(得分:1)

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

  • Conditional运营商: 条件,那么:其他 如果condition为true,则'then part'为'else part',此运算符就像if-else。

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

答案 3 :(得分:1)