相关疑难解决方法(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
查看次数

为什么List <T>实现IList <T>,ICollection <T>和IEnumerable <T>?

如果你去定义List<T>你会看到以下内容:

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

IList<T>已经从两个继承ICollection<T>IEnumerable<T>.

如果List<T>只实施,那还不够IList<T>吗?

c#

25
推荐指数
2
解决办法
4855
查看次数

标签 统计

c# ×2

.net ×1