有人告诉我我们使用这些的区别和例子。我知道它的NULL值。
答案 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)