4

基本上,我有一个非常大byte[]的一类辅助函数。

我是否正确地认为如果我调用Helpers.HelperFunc(mybigbytearray)mybigbytearray会在内存中重复?

如果是这样,给函数一个大变量的最佳方法是什么(指针看起来不错,但使辅助函数变得unsafe明智?垃圾收集器还能工作吗?)

4

1 回答 1

8

数组和 C# 中的其他对象一样,是通过引用传递的,因此数组内的数据不会重复;您将数组传递给的函数将引用原始数组。


数组作为对象(C# 编程指南)

在 C# 中,数组实际上是对象,而不仅仅是 C 和 C++ 中的连续内存的可寻址区域。System.Array 是所有数组类型的抽象基类型。

并将数组作为参数传递(C# 编程指南)

数组可以作为参数传递给方法参数。因为数组是引用类型,所以该方法可以更改元素的值。

于 2013-05-18T12:52:56.767 回答