?? null-coalescing operator vs if == null

时间:2015-12-28 16:31:26

标签: c# if-statement null null-coalescing-operator

使用?? null-coalescing运算符实例化空对象时,是否有任何性能差异,附加周期等与简单if == null语句相比?将对象分配给自身会产生什么影响?

RedColorBrush = RedColorBrush ?? new SolidColorBrush(renderTarget, Color.Red);

VS

if (RedColorBrush == null)
{
    RedColorBrush = new SolidColorBrush(renderTarget, Color.Red);
}

1 个答案:

答案 0 :(得分:2)

根据this post???:运算符可能实际上更快(尽管不是很多)因为这些运算符实际上作为一个值进行评估,其中,{{1} }语句指向不同的路径行,并可能导致创建另一个本可以避免的变量。

此外,if运算符几乎就像??

的特例

编辑:它看起来更干净,输入更快。我讨厌不得不一次又一次地重新输入相同的东西,这就是我喜欢C#的原因,因为它为速记提供了很多选择。