C#中的数组类实现

时间:2013-02-19 10:44:35

标签: c# arrays

转到实现细节,我将Array类的实现视为

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

IList接口的实现读为

public interface IList : ICollection, IEnumerable

我的问题是,Array类在实施ICollection时是否自动实施IEnumerableIList?为什么要明确实施这些?

2 个答案:

答案 0 :(得分:3)

Array的实现是:

Array : ICloneable, IList, IStructuralComparable, IStructuralEquatable

here

中查看此来源

也许你看一下MSDN,它只是让文件更清晰。

答案 1 :(得分:1)

interface I
{
    void M();
}

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

    }
}

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

    }
}

您可以自由撰写I i = new B(),但无法在M中明确实施B。为此,您需要B明确实施I

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

    }
}