为什么数组类没有costructor(为什么它不是通过例如new int ()创建的)

我理解C#中的数组是如何工作的,并且它们的创建语法只是磁带和方括号(例如new int[] ),可选地后跟特殊的括号,其中包含要填充新数组的项目。

但是,该数组在内部是一个(好的,可能不是这样)普通类。 而且它确实有一个隐式构造函数(不一定)应该在创建一个应该被语法反映的数组时调用 – >创建应该是new int[]()而不是它是什么…

但它显然不是那样的,我的问题是为什么……是什么导致他们这样做(不直观)……

数组与简单类或其他数据结构非常不同。 使用数组,项目的内存分配和访问由CLR和/或编译器直接完成。 对于其他数据结构,这由数据结构代码进行处理。

因此,为了分配一定大小的数组,需要一些让编译器完成工作的语法。 var arr = new int[5]

而不是调用数据结构的构造函数的语法,如var list = new List(5)