【发布时间】:2011-07-22 19:43:44
【问题描述】:
可能重复:
In your opinion what is more readable: ?? (operator) or use of if's
假设您有一个检查列表是否为空的方法。如果是,则实例化它。
一般来说,我们会这样做:
if (StringList == null)
StringList = new List<string>();
我最近了解了空合并运算符,并很想将其更改为:
StringList = StringList ?? new List<string>();
它更紧凑,看起来会被编译成与“传统”方法相同的指令集。
可能有点迂腐,但我想知道您是否对这种方法有任何保留意见以及您实际使用的方法。
【问题讨论】:
-
我会使用较短的。任何称职的 C# 程序员都知道
??运算符(或者至少很容易教授) -
请注意,它们并不完全相同if StringList is a property..
-
有趣。因此,对于属性,不使用 ?? 会更有效。操作员。即使 setter 是对同一个对象的引用,它仍然会被调用?
标签: c# null-coalescing-operator