【发布时间】:2010-12-02 04:05:49
【问题描述】:
有人告诉我为什么我们使用这些的区别和例子。我知道它是 NULL 值。
【问题讨论】:
标签: c# language-features
有人告诉我为什么我们使用这些的区别和例子。我知道它是 NULL 值。
【问题讨论】:
标签: c# language-features
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#中正式命名为条件运算符。
??是空合并运算符
条件运算符对于简短、简洁的 if/else 语句很有用
null 合并运算符可用于返回一个非空值,否则返回另一个值(运算符右侧的值)
【讨论】:
有两个不同的运算符使用'?'
Conditional 操作员: 条件?那么:否则 if condition is true then 'then part' else 'else part',这个操作符就像 if-else。
null-coalescing 运营商: 这 ??运算符称为空值合并运算符,用于为可空值类型和引用类型定义默认值。如果它不为空,则返回左操作数;否则返回正确的操作数。 // y = x,除非 x 为空,在这种情况下 y = -1。 整数 y = x ?? -1;
【讨论】:
【讨论】: