我已经看到越来越多的代码使用了coalesce运算符(对我来说无论如何)有点奇怪的方式,对这种用法的想法?
e.g。这样做的:
string foo = null;
void bar(){
foo = foo??"hello";
}
而不是
string foo = null;
void bar(){
if (foo==null)
foo="hello";
}
答案 0 :(得分:3)
这看起来像是对我合理使用null合并运算符。请注意,它不是完全与第一个代码段相同,因为它将以任意方式重新分配foo
。如果您实际使用属性而不是变量,这可能很重要 - 无论当前值如何,都将调用属性setter。
答案 1 :(得分:1)
它提供了检查空对象的虚拟功能,使代码更短,更易读。
答案 2 :(得分:0)
主要的区别因素是??
是一个运算符,因此可以在其他表达式中使用。至于在哪里使用它 - 完全取决于开发人员。
答案 3 :(得分:0)
Coalesce Operator可能有用的惊人情况。感谢Eric。 Please follow the link and Eric's Answer