クラスは、1 つ以上のインターフェースから派生できます。
複数のインターフェイスに同じシグネチャを持つメソッドがある場合、クラスはそのようなインターフェイスのメンバーを明示的に実装する必要があります。
これまでの経験では、同じシグネチャを持つメソッドを持つインターフェイスから派生しなければならない状況に遭遇したことはありません。
.NET フレームワークまたは公開されているライブラリに明示的なインターフェイスを実装する例はありますか?
IEnumerable
最も一般的なケースはとだと思いますIEnumerable<T>
。
どちらもメソッドを宣言しGetEnumerator()
ます。
IEnumerable<T>
これが、実装するときに、実装するメソッドが常に 2 つある理由ですGetEnumerator()
(IEnumerable<T>
継承元IEnumerable
):
public IEnumerator<T> GetEnumerator() // From IEnumerable<T> interface
{
// Code
}
IEnumerator IEnumerable.GetEnumerator() // From IEnumerable interface
{
// Code
}
Dictionary<Key, Value> は明示的に実装してICollection<KeyValuePair<Key,Value>>
います。IEnumerable<T>
非ジェネリックの対応物を明示的に実装するなど、ジェネリック インターフェイスを実装するクラスでも一般的です。