IEnumeratorインターフェイスを実装するクラスを作成しています。コンパイルするには、次の2つの方法が必要です。
public object Current
{
get { return current; }
}
T IEnumerator<T>.Current
{
get { return current; }
}
なぜこれらの両方が必要なのですか?表面的には、後者だけが必要なように見えます。
これは、ジェネリックが.NET2.0に導入される前に存在していた非ジェネリックバージョンのインターフェイスであるインターフェイスをIEnumerator<T>
実装しているためです。IEnumerator
したがって、(IEnumerator<T>
あなたの場合)インターフェースを実装するときは、このインターフェースが実装する他のすべてのインターフェースも実装する必要があります。