c# - ReSharper:枚举器可能出现 NullReferenceException?

标签 c# .net resharper nullreferenceexception ienumerator

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/

相关文章:

c# - 如何使 decimal.Parse 接受多种文化

c# - C# 命令提示的新手并试图理解此代码

c# - 比较两个复杂对象的相等性

java - Rijndael 256 加密 : Java and . NET 不匹配

resharper - 如何从模板中删除用户类别?

c# - 在 C# 中,如何对 "largest"值位于列表中间的列表中的项目进行排序

c# - MvvmCross vnext : merge plugins with monodroid

c# - 如何使用不同的 set 和 get 重载 [] 运算符?

c# - 我如何强制 Resharper 将花括号放在同一行上?

c# - ToString 和字符串连接 - 意外行为