为什么数组类型没有 Add() 方法,尽管它们实现了 IList<T>?

Why don't array types have Add() method although they implement IList<T>?

int[]等数组类型实现了很多接口,IList就是其中之一。 IList需要实现Add(T)方法(因为IList继承自ICollection)

我正在写一个 "CircularArray" class ,它本身包含一个数组,但没有任何索引超出范围的异常,因为它是循环的。 class的定义是这样的:

public class CircularArray<T> : ICloneable, IList<T>, IStructuralComparable, IStructuralEquatable

它应该实现数组的所有接口,所以我必须实现 Add 方法。但是......数组没有这个方法,尽管它们实现了"ICollection"接口。

数组是如何完成的,以便它们可以实现 ICollection 接口而没有 Add 方法?我想对我的 CircularArray class 做同样的事情。

说明在大牛在其他话题的回答中。做你想实现的就是使用显式接口实现。

    interface ILeft
    {
        int P { get;}
    }   
    class Middle : ILeft
    {
        int ILeft.P { get { return 0; } }
    }

var mid= new Middle();
var abc = mid.P // invalid;
var abc2 = (mid as ILeft).P; //valid