Причина в том, что есть два метода, в том, что IEnumerable<T>
наследует интерфейс IEnumerable
, поэтому вы видите универсальный метод из IEnumerable<T>
и неуниверсальный метод из IEnumerable
.
Вот как вы хотите реализовать интерфейс в вашем типе:
class Foo : IEnumerable<Foo>
{
public IEnumerator<Foo> GetEnumerator()
{
// do your thing here
}
// do a EIMI here and simply call the generic method
IEnumerator IEnumerable.GetEnumerator()
{
this.GetEnumerator();
}
}