合并运算符 - 用法(c#)

时间:2011-03-23 09:46:37

标签: c# coalesce

我已经看到越来越多的代码使用了coalesce运算符(对我来说无论如何)有点奇怪的方式,对这种用法的想法?

e.g。这样做的:

string foo = null;
void bar(){
 foo = foo??"hello";
}

而不是

string foo = null;
void bar(){
 if (foo==null)
  foo="hello";
}

4 个答案:

答案 0 :(得分:3)

这看起来像是对我合理使用null合并运算符。请注意,它不是完全与第一个代码段相同,因为它将以任意方式重新分配foo。如果您实际使用属性而不是变量,这可能很重要 - 无论当前值如何,都将调用属性setter。

答案 1 :(得分:1)

它提供了检查空对象的虚拟功能,使代码更短,更易读。

答案 2 :(得分:0)

主要的区别因素是??是一个运算符,因此可以在其他表达式中使用。至于在哪里使用它 - 完全取决于开发人员。

答案 3 :(得分:0)

Coalesce Operator可能有用的惊人情况。感谢Eric。 Please follow the link and Eric's Answer