12

実装の詳細に進むと、Arrayクラスの実装が次のように表示されます

public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable

IList インターフェイスの実装は次のように読み取ります

public interface IList : ICollection, IEnumerable

私の質問は、Arrayクラスは自動的に実装され、実装さICollectionIEnumerableた瞬間IListですか? これらが明示的に実装されているのはなぜですか?

4

2 に答える 2

3

Arrayの実装は次のとおりです。

Array : ICloneable, IList, IStructuralComparable, IStructuralEquatable

ここでこのソースを見てください

たぶん、あなたはドキュメントをより明確にするMSDNを見てみました。

于 2013-02-19T10:52:36.967 に答える
1
interface I
{
    void M();
}

class A : I
{
    void I.M()
    {

    }
}

class B : A
{
    void I.M() // Compilation error
    {

    }
}

を自由に記述できますが、明示的にI i = new B()実装することはできません。そのためには、明示的に実装する必要があります。MBBI

class B : A, I
{
    void I.M() // Is ok now.
    {

    }
}
于 2013-02-19T10:54:43.170 に答える