ReSharper 会通知我以下代码的可能 System.NullReferenceException:

 IEnumerator<IEdgeData> edgeEnumerator = edgeData.GetEnumerator();
 while (edgeEnumerator.MoveNext())
 {
    ConvId fromConvId = edgeEnumerator.Current.From;
    ...
 }

具体来说,它强调:
edgeEnumerator.Current

我无法弄清楚在什么情况下会发生异常。我的理解是只有 while 可以在下一个元素上设置枚举器时,才会执行 MoveNext() -loops 内部语句。

最佳答案

下一个元素实际上可能为空。例如,以下代码:

new List<SampleClass> { null, null, null }

仍然会为每个元素提供一个枚举器,但元素本身为空。

关于c# - ReSharper:枚举器可能存在 NullReferenceException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5951678/

10-10 07:50