ReSharper 通知我以下代码可能出现 System.NullReferenceException
:
IEnumerator<IEdgeData> edgeEnumerator = edgeData.GetEnumerator();
while (edgeEnumerator.MoveNext())
{
ConvId fromConvId = edgeEnumerator.Current.From;
...
}
具体来说,它强调:
edgeEnumerator.Current
我不知道在什么情况下会发生异常。我的理解是,while
循环内部语句只有在 MoveNext()
可以设置下一个元素的枚举器时才会执行。
最佳答案
下一个元素实际上可能为空。例如下面的代码:
new List<SampleClass> { null, null, null }
仍将为您提供每个元素的枚举器,但元素本身为空。
关于c# - ReSharper:枚举器可能出现 NullReferenceException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5951678/