使用??
null-coalescing运算符实例化空对象时,是否有任何性能差异,附加周期等与简单if == null
语句相比?将对象分配给自身会产生什么影响?
RedColorBrush = RedColorBrush ?? new SolidColorBrush(renderTarget, Color.Red);
VS
if (RedColorBrush == null)
{
RedColorBrush = new SolidColorBrush(renderTarget, Color.Red);
}
答案 0 :(得分:2)
根据this post,??
和?:
运算符可能实际上更快(尽管不是很多)因为这些运算符实际上作为一个值进行评估,其中,{{1} }语句指向不同的路径行,并可能导致创建另一个本可以避免的变量。
此外,if
运算符几乎就像??
编辑:它看起来更干净,输入更快。我讨厌不得不一次又一次地重新输入相同的东西,这就是我喜欢C#的原因,因为它为速记提供了很多选择。