转到实现细节,我将Array
类的实现视为
public abstract class Array : ICloneable, IList, ICollection, IEnumerable, IStructuralComparable, IStructuralEquatable
IList接口的实现读为
public interface IList : ICollection, IEnumerable
我的问题是,Array
类在实施ICollection
时是否自动实施IEnumerable
和IList
?为什么要明确实施这些?
答案 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.
{
}
}