因此,我经常遇到这种情况... Do.Something(...)
返回一个null集合,如下所示:
int[] returnArray = Do.Something(...);
然后,我尝试像这样使用此集合:
foreach (int i in returnArray)
{
// do some more stuff
}
我很好奇,为什么foreach循环不能对null集合进行操作?在我看来,0迭代将使用null集合来执行是合理的……相反,它抛出NullReferenceException
。有人知道为什么会这样吗?
这很烦人,因为我使用的API尚不清楚确切返回的API,所以我if (someCollection != null)
到处都是...
编辑:谢谢大家对foreach
使用的解释,GetEnumerator
如果没有枚举数可以获取,则foreach将失败。我想我在问为什么语言/运行时不能或不会在获取枚举数之前做空检查。在我看来,这种行为仍然可以很好地定义。
null
。您是否还建议将其用于正义foreach
循环或其他语句?