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/