在创建数组时,例如int [],这会继承任何东西吗?我认为它可能继承自System.Array,但在查看编译后的CIL后,它看起来并非如此.
我认为它可以从System.Array或somehting similair继承,考虑到你可以在数组上调用方法和访问属性.
即
int[] arr = {1, 2};
arr.Initialize();
arr.Length;
Run Code Online (Sandbox Code Playgroud)
Mic*_*tta 13
所有数组都来自System.Array
.来自MSND杂志的一本(古老的)版本:
所有数组类型都是从System.Array隐式派生的,System.Array本身派生自System.Object.这意味着所有数组始终是在托管堆上分配的引用类型,并且应用程序的变量包含对数组的引用,而不是数组本身.
从C#语言规范的第19.1.1节(强调我的):
System.Array类型是所有数组类型的抽象基类型.从任何数组类型到System.Array以及System.Array实现的任何接口类型都存在隐式引用转换(第13.1.4节).System.Array中存在显式引用转换(第13.2.3节),System.Array实现的任何接口类型都存在于任何数组类型.System.Array本身不是数组类型.相反,它是一个类类型,从中派生所有数组类型.