我有一個關於他們的方式的問題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