这有什么问题?运算符使用如下:

Cal*_*lin 7 c# coalesce

所以写作:

if (obj.Collection == null)
    obj.Collection = new Collection();
obj.Collection.Add(something);
Run Code Online (Sandbox Code Playgroud)

我想写作:

obj.Collection = obj.Collection ?? new Collection;
obj.Collection.Add(something);
Run Code Online (Sandbox Code Playgroud)

这种感觉有点不对,尤其是这部分"obj.Collection = obj.Collection ......"

你们有什么感想 ?

问候,

jas*_*son 15

如果我必须在这两个代码块之间进行选择,我会使用前者.它更具可读性,是一种常见的模式.??在需要默认值的情况下很有用(例如,DateTime date = nullableDateTimeInstance ?? defaultDate;).

但坦率地说,我试图不会在我想要添加到集合的情况下结束,并且集合可能是null.相反,我确保在构造函数中初始化集合或者不管是什么情况.