Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ReSharper: Possible NullReferenceException with Enumerator?

ReSharper notifies me about a possible System.NullReferenceException for the following code:

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

Specifically, it underlines:

edgeEnumerator.Current

I cannot figure out under which circumstances the exception could occur. My understanding is that the while-loops inner statements will only be executed if MoveNext() can set the enumerator on the next element.

like image 468
Norbert Avatar asked May 10 '11 14:05

Norbert


1 Answers

The next element could actually be null. For example, the following code:

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

will still give you an enumerator for each element, but the element itself is null.

like image 175
Tejs Avatar answered Oct 18 '22 04:10

Tejs