2

我已经看到越来越多的代码以一种(对我来说)有点奇怪的方式使用合并运算符,对这种用法有什么想法吗?

例如做:

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

代替

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

4 回答 4

3

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

于 2011-03-23T09:49:55.203 回答
1

它使代码更短、更易读,同时提供了检查空对象的重要功能。

于 2011-03-23T09:51:57.350 回答
0

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

于 2011-03-23T09:49:50.770 回答
0

Coalesce Operator 可能会有所帮助的惊人情况。感谢埃里克。 请点击链接和埃里克的回答

于 2011-03-24T03:02:18.550 回答