虽然 C# 中的数组似乎实现了 IList
实际上,数组实现 System.Collections.IList,而不是 System.Collections.Generic.IList
但是,CLR 生成可能实现这些接口的特定数组类型。但即使对于这些具体的数组类型,转换为 IEnumerable
这是由于“quacks-like-a-duck”类型所致,其中编译器和 CLR 将数组识别为实现 IList
即使 Count 属性没有显式实现,CLR 也提供了一个使用 T[] 数组强制转换的内部 getter。
这种行为虽然有些不合常规,但允许无缝且高效地实现 IList
以上是为什么 C# 数组不直接实现'IList”,它们看起来又如何?的详细内容。更多信息请关注PHP中文网其他相关文章!