我们所说的是什么意思?或者 ???
有人告诉我它们的区别以及我们为什么使用它们的例子。我知道它是 NULL 值。
Someone tell me the difference and example why we use these. I know its for NULL values.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
<代码>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?
是Nullable
的简写x ? a : b
meansif (x == true) then a else b
x ?? y
meansif (x != null) then x else y
but with a twist since both are expressions rather than statements like the IF.
That allow you to write
var z = x ? a : b;
to combine declaration and assignment in one line instead of the multi-line alternative:Type?
is a shorthand forNullable<Type>
?是一个三元运算符,在C#中正式命名为条件运算符。
??是 null 合并运算符 条件
运算符对于简短的 if/else 语句很有用
null 合并运算符对于返回一个不为 null 的值很有用,否则返回另一个值(运算符右侧的值)
? is a ternary operator, officially named the conditional operator in C#.
?? is the null coalescing operator
The conditional operator is useful for short, concise if/else statements
The null coalescing operator is useful for returning one value if it is not null, otherwise returning another value (the value on the right side of the operator)
有两个不同的运算符使用“?”
条件运算符:
条件?然后:其他
if condition is true then 'then part' else 'else part',此运算符类似于 if-else。
空合并运算符:
这 ??运算符称为空合并运算符,用于为可为空值类型和引用类型定义默认值。如果左侧操作数不为空,则返回左侧操作数;否则返回正确的操作数。
// y = x,除非 x 为空,在这种情况下 y = -1。
整数 y = x ?? -1;
there are two different operator which use '?'
Conditional Operator:
condition?then:else
if condition is true then 'then part' else 'else part', this operator is like if-else.
null-coalescing operator:
The ?? operator is called the null-coalescing operator and is used to define a default value for a nullable value types as well as reference types. It returns the left-hand operand if it is not null; otherwise it returns the right operand.
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
第一个是三元运算符或条件运算符
第二个是 空合并运算符。
The first one is a Ternary Operator or Conditional Operator
The second one is a Null Coalescing Operator.