使用此代码:
bool dataToAdd; if (null == _priceComplianceDetailList) return dataToAdd;
我收到编译错误," 使用未分配的局部变量'dataToAdd' "
所以我不得不明确地给布尔分配"假":
bool dataToAdd = false; if (null == _priceComplianceDetailList) return dataToAdd;
在上下文中:
private bool PopulateSheetWithDetailData() { bool dataToAdd = false; if (null == _priceComplianceDetailList) return dataToAdd; List_sortedDetailList = . . . return _sortedDetailList.Count > 0; }
为什么有必要?bool的默认值是否为false?
因为默认情况下未初始化局部变量.您应该明确初始化它们.它是一种编译器功能,可以避免将来出现错误.这里和这里的语言规范都澄清了这一点.
这在C#中是非法的原因是因为使用未分配的本地很可能是一个bug
如果您想知道此决定的原因,请参阅此处.