假设我们先前已经从D类实例化了三个对象A,B,C,现在数组定义如下:D [] arr = new D [3]; ARR [0] = A; ARR [1] = B; ARR [2] = C;
数组是否包含对象的引用或具有单独的副本?
引用类型数组仅包含引用.
在32位应用程序中,引用是32位(4字节),而在64位应用程序中,引用是64位(8字节).因此,您可以通过将数组长度乘以参考大小来计算近似大小.(对于数组类,内部变量还有一些额外的字节,一些额外的字节用于内存管理.)
C# 区分引用类型和值类型。
甲引用类型是使用字声明类。这些类型的变量包含引用,因此数组将是对对象的引用的数组。每个引用大小为 4 字节(在 32 位系统上)或 8 字节(在 64 位系统上)。
一个值类型是使用这个词声明结构。每次分配此类值时都会复制这些值。值类型的数组包含值的副本,因此数组的大小是结构的大小乘以元素的数量。
通常,当我们说“对象”时,我们指的是引用类型的实例,因此您的问题的答案是“是”,但请记住区别并确保您不会意外创建大型结构的大型数组。