相关疑难解决方法(0)

为什么(它真的吗?)List <T>实现所有这些接口,而不仅仅是IList <T>?

List 来自MSDN的声明:

public class List<T> : IList<T>, ICollection<T>, 
 IEnumerable<T>, IList, ICollection, IEnumerable
Run Code Online (Sandbox Code Playgroud)

反射器给出了类似的图片.难道List真的实现所有这些(如果是为什么)?我检查过:

    interface I1 {}
    interface I2 : I1 {}
    interface I3 : I2 {}

    class A : I3 {}
    class B : I3, I2, I1 {}

    static void Main(string[] args)
    {
        var a = new A();
        var a1 = (I1)a;
        var a2 = (I2)a;
        var a3 = (I3)a;

        var b = new B();
        var b1 = (I1) b;
        var b2 = (I2)b;
        var b3 = (I3)b; …
Run Code Online (Sandbox Code Playgroud)

.net c#

67
推荐指数
3
解决办法
4065
查看次数

当一个界面"继承"另一个界面时,你怎么称呼它?

如果我有B级:A {}

我说"B级继承了 A级"或"B级来自A级".

但是,如果我改为:

  class B : ISomeInterface   {}
Run Code Online (Sandbox Code Playgroud)

说"B继承ISomeInterface"是错误的 - 正确的术语是"B 实现 ISomeInterface".

但是,说我有

  interface ISomeInterface : ISomeOtherInterface   {}
Run Code Online (Sandbox Code Playgroud)

现在,说"继承"仍然是错误的,但现在说"实现"是错误的,因为ISomeInterface没有实现任何东西.

那么,你怎么称呼这种关系?

c# oop interface

43
推荐指数
4
解决办法
2万
查看次数

标签 统计

c# ×2

.net ×1

interface ×1

oop ×1