诸如int []这样的数组类型实现了许多接口,IList是其中之一。 IList需要实现Add(T)方法(因为IList继承自ICollection)。
我正在编写一个“ CircularArray”类,该类本身包含一个数组,但由于是循环的,所以没有超出范围异常的任何索引。 该类的定义是这样的:
public class CircularArray<T> : ICloneable, IList<T>, IStructuralComparable, IStructuralEquatable
它应该实现数组所做的所有接口,所以我必须实现Add方法。但是,尽管数组实现了“ ICollection”接口,但它们没有此方法。
如何对数组进行所有操作,以便它们可以实现ICollection接口而没有Add方法?我想对我的CircularArray类做同样的事情。
答案 0 :(得分:3)
解释在另一个主题中但以理的回答中。要实现的目标是使用显式接口实现。
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