【发布时间】:2013-09-13 17:12:34
【问题描述】:
我用 ??运算符在我的代码中非常重要。但是今天我刚刚遇到一个问题。
这是我用于的代码??运营商
private List<string> _names;
public List<string> Names
{
get { return _names ?? (_names = new List<string>()); }
}
但在某些地方我也看到了这段代码。
private List<string> _names;
public List<string> Names
{
get { return _names ?? new List<string>(); }
}
这些代码之间的真正区别是什么。在一个中,我正在分配 _names = new List(),而在另一个中,我只是在做 new List()。
【问题讨论】:
-
这些是非常不同的,第二个可能是一个错误。
-
为什么不直接初始化成员变量呢?代码会更干净。
private List<string> _names = new List<string>();.
标签: c# .net null-coalescing-operator