“;使用未分配的局部变量“;错误

本文关键字:局部变量 错误 分配 | 更新日期: 2023-09-27 18:27:30

使用此代码:

bool dataToAdd;
if (null == _priceComplianceDetailList) return dataToAdd;

我收到一个编译器错误,"使用未分配的本地变量'dataToAdd'"

所以我不得不明确地将"false"分配给bool:

bool dataToAdd = false;
if (null == _priceComplianceDetailList) return dataToAdd;

上下文:

private bool PopulateSheetWithDetailData()
{
    bool dataToAdd = false;
    if (null == _priceComplianceDetailList) return dataToAdd;
    List<PriceComplianceDetail> _sortedDetailList =
    . . .
    return _sortedDetailList.Count > 0;
}

为什么有必要?bools的默认值不是false吗?

“;使用未分配的局部变量“;错误

因为默认情况下不会初始化局部变量。您应该显式初始化它们。这是编译器的一项功能,可以避免将来出现错误。它在这里和这里的语言规范中得到了澄清。

这在C#中是非法的原因是使用未分配的本地有很高的可能性成为错误

如果你想知道这个决定的原因,请看这里。