“;使用未分配的局部变量“;错误
本文关键字:局部变量 错误 分配 | 更新日期: 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#中是非法的原因是使用未分配的本地有很高的可能性成为错误
如果你想知道这个决定的原因,请看这里。