您可能知道,C#中的数组实现IList<T>了其他接口.但不知何故,他们这样做没有公开实现Count属性IList<T>!数组只有一个Length属性.
这是一个明显的例子,C#/ .NET打破了自己关于接口实现的规则,还是我错过了什么?
int[] a = new int[5];
string[] b = new string[1];
Run Code Online (Sandbox Code Playgroud)
两者的类型a和b继承自抽象System.Array,但内置库中没有真正的类(似乎有一些运行时类型,你找不到类型定义类的一个int[]).你能告诉我编译时会发生什么吗?为什么他们(c#团队)制作这个设计(我的意思是为什么它不是这样的Array<T>,而是他们使用带编译器魔法的抽象类)?