“使用未分配的局部变量”错误的原因是什么?

时间:2015-12-18 18:07:25

标签: c# .net boolean default default-value

使用此代码:

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

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

所以我必须明确地将“假”分配给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;
}

为什么有必要? bool的默认值是否为false?

1 个答案:

答案 0 :(得分:11)

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

  

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

如果您想知道此决定的原因,请参阅here