I decompiled(go to the sources in vs
using resharper
) IEnumerable<T>
and it contains the following code:
(some not related code is omitted here)
public interface IEnumerable<out T> : IEnumerable
{
IEnumerator<T> GetEnumerator();
}
Actually I was researching about c#
new
modifier and I was surprised cause IEnumerable<T>
doesn't contain it since IEnumerable<out T>
inherits IEnumerable
.
Than I decided to find a real(not decompiled) sources. I went here and found the following code:
public interface IEnumerable<out T> : IEnumerable
{
new IEnumerator<T> GetEnumerator();
}
new
modifier is here. But now I'm confused whether IEnumerable<T>
contains new
modifier or not and why there's the difference.