为什么数组类没有协结构体(为什么它不是通过例如 new int[]())创建的)

本文关键字:为什么 new 创建 int 数组 结构体 | 更新日期: 2024-11-08 04:11:03

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

但是,该数组在内部是一个(好吧,可能不是这样)普通类。作为一个,它肯定有一个隐式构造函数(不一定),应该在创建数组时调用该构造函数,该数组应由语法反映 ->创建应该new int[]()而不是它是什么......

但显然不是那样的,我的问题是为什么......是什么导致他们以这种(不直观的)方式这样做......

为什么数组类没有协结构体(为什么它不是通过例如 new int[]())创建的)

数组

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

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

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