如果实例已存在,则忽略泛型列表构造



我有这样的代码:

if (null == _priceComplianceSummaryList)
{
    _priceComplianceSummaryList = new List<PriceComplianceSummary>();
}

Resharper将其标记为一个问题,建议"用相应的分支替换‘if’语句"。如果我默认,上面的代码将更改为:

_priceComplianceSummaryList = new List<PriceComplianceSummary>();

然而,R#似乎更像是腰带和吊带类型的"猫",敦促我在引用它之前总是检查某个东西是否为空。那么,这种表面上鲁莽的行为真的只是效率问题吗?IOW,"new List<>"是否仅在istance变量(_priceComplianceSummaryList)为null时生成新列表,而不必显式检查?

"将'if'语句替换为相应的分支"R#建议意味着当布尔表达式返回false时不存在任何场景。例如,

void SomeMethod(bool firstParam)
{
    var secondParam = true;
    if (firstParam || secondParam)
    {
        Console.WriteLine();
    }
}

由于firstParam || secondParam始终为true,因此此代码将通过R#进行重构。

然后,您的两个代码示例并不总是等效的,但在您的场景中它们是等效的。

相关内容

  • 没有找到相关文章

最新更新