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

合并运算符-用法(c#),c#,coalesce,C#,Coalesce,我看到越来越多的代码以一种(无论如何对我来说)有点奇怪的方式使用coalesce操作符,你对这种用法有什么看法 e、 g.做: string foo = null; void bar(){ foo = foo??"hello"; } 而不是 string foo = null; void bar(){ if (foo==null) foo="hello"; } 主要的区别在于?是一个运算符,因此可以在其他表达式中使用。至于在哪里使用它——完全取决于开发人员。对我来说,这似乎是对空合并

我看到越来越多的代码以一种(无论如何对我来说)有点奇怪的方式使用coalesce操作符,你对这种用法有什么看法

e、 g.做:

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

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

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

对我来说,这似乎是对空合并运算符的完全合理的使用。请注意,它与第一个代码片段并不完全相同,因为它将以任何方式重新分配
foo
。如果您实际使用的是属性而不是变量,则这可能非常重要-无论当前值如何,都会调用属性设置程序。

它使代码更短,可读性更高,同时提供检查空对象的虚拟功能。

一个令人惊讶的情况是,Coalesce运算符可能会有所帮助。多亏了埃里克。

你有没有一个问题可以有一个明确的答案?这个用法没有错。@Oded,投票最多的回答-民主社区标准。