2

IEnumeratorインターフェイスを実装するクラスを作成しています。コンパイルするには、次の2つの方法が必要です。

public object Current
{
    get { return current; }
}

T IEnumerator<T>.Current
{
    get { return current; }
}

なぜこれらの両方が必要なのですか?表面的には、後者だけが必要なように見えます。

4

1 に答える 1

9

これは、ジェネリックが.NET2.0に導入される前に存在していた非ジェネリックバージョンのインターフェイスであるインターフェイスをIEnumerator<T>実装しているためです。IEnumeratorしたがって、(IEnumerator<T>あなたの場合)インターフェースを実装するときは、このインターフェースが実装する他のすべてのインターフェースも実装する必要があります。

于 2012-09-17T06:15:08.623 に答える