我有一个关于他们的方式的问题C#函数或方法,当某些对象用作输入参数时处理内存。我试图寻找答案,但一直没能找到任何东西,但我可能不知道要寻找什么。方法的C#内存处理
问题:假设我有一个非常大的整数数组,大小为10.000 10.000,称为'MyArray'。比方说,我还有一种叫做'MyMethod'的方法,它从MyArray的两个指定行(这是输入)接收几个条目并对它执行一些操作,比如添加或乘以这些数字,然后返回另一个整数。
为了让我的代码尽可能的短,我宁愿做一个方法
MyMethod(int i, int j, int[][] MyArray)
,而不是从数组作为单独的参数输入所有数字。但是,这是否意味着该方法在调用MyArray时会创建一个副本,或者C#知道如果只读取该数据并且不以任何方式进行编辑,则不需要创建副本?
数组由参考 – Matthew 2014-10-08 13:43:18
@Matthew否,阵列不通过引用传递通过。数组类型*是*引用,并且这些引用是按值传递的。除非使用'ref'或'out'关键字,否则所有类型都将通过C#中的值传递。 – Servy 2014-10-08 13:55:04
@Servy你在技术上是正确的,最好的一种正确。 – Matthew 2014-10-08 14:00:50