结构数组 - 结构?

时间:2010-12-20 11:41:15

标签: c#

如果我们传递一个结构数组作为方法参数,在方法体中我们是否有一个结构数组或一个新的结构数组的引用?

3 个答案:

答案 0 :(得分:7)

您将引用一系列结构。

数组本身是一种引用类型,因此结构数组将是一个内联存储值的对象。

如果将数组传递给方法,则传递对数组对象的引用。引用本身按值传递。

答案 1 :(得分:1)

当您声明值类型数组时,.NET会在堆而非堆栈上分配内存。所以它总是被称为它的参考。

唯一的例外是stackalloc,其中在堆栈上分配了一个内存区域,可以不安全地使用,并且堆访问速度更快。

答案 2 :(得分:1)

Array是.net框架中的一个类,所以如果你创建一个struct数组,所以你将有一个引用类型,我不会评论它们是如何以及存储在何处,无论它是堆栈还是堆,因为它是纯粹的实现细节但是Microsoft的实现引用类型将继续HEAP。