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.