【问题标题】:ReSharper: Possible NullReferenceException with Enumerator?ReSharper:可能带有枚举器的 NullReferenceException?
【发布时间】:2011-05-10 14:32:40
【问题描述】:

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

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

特别强调:

edgeEnumerator.Current

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

【问题讨论】:

    标签: c# .net resharper nullreferenceexception ienumerator


    【解决方案1】:

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

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

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

    【讨论】:

    • 奇怪的是,如果我们改用foreach,它并没有下划线。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多