??null合并运算符vs if==null

本文关键字:null if 运算符 合并 vs | 更新日期: 2023-09-27 18:28:20

使用?? null合并运算符实例化null对象时,与简单的if == null语句相比,是否存在性能差异、额外的周期等?将对象指定给自身会有什么影响?

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

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

??null合并运算符vs if==null

根据这篇文章,???:运算符实际上可能更快(尽管不太快),因为这些运算符实际上是作为一个值计算的,其中,作为,if语句指向不同的路径行,并可能导致创建另一个本可以避免的变量。

此外,??运算符几乎类似于?: 的特殊情况

编辑:它看起来也更干净,打字更快。就我个人而言,我讨厌一遍又一遍地重新键入相同的内容,这就是我喜欢C#的原因,因为它提供了很多速记选项。