将大数据传递到C#函数的最佳方法是什么?

时间:2013-05-18 12:49:47

标签: c#

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

我是否正确地思考如果我致电Helpers.HelperFunc(mybigbytearray)mybigbytearray将在内存中重复?

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

1 个答案:

答案 0 :(得分:8)

与C#中的其他对象一样,数组通过引用传递,因此数组中的数据不会被复制;传递数组的函数将引用原始数组。


来自Arrays as Objects (C# Programming Guide)

  

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

Passing Arrays as Arguments (C# Programming Guide)

  

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