ReSharper通知我关于以下代码的可能System.NullReferenceException
:
IEnumerator<IEdgeData> edgeEnumerator = edgeData.GetEnumerator();
while (edgeEnumerator.MoveNext())
{
ConvId fromConvId = edgeEnumerator.Current.From;
...
}
具体来说,它强调:
edgeEnumerator.Current
我无法弄清楚在哪种情况下会发生异常。我的理解是while
- 循环内部语句只有在MoveNext()
可以在下一个元素上设置枚举器时才会执行。
答案 0 :(得分:5)
下一个元素实际上可能为null。例如,以下代码:
new List<SampleClass> { null, null, null }
仍会为每个元素提供一个枚举器,但元素本身为null。