深入理解C#中數組的引用傳遞
C# 中,陣列與基本資料型別不同,它屬於參考型別。這就引出了一個問題:陣列是如何傳遞給方法的?是值傳遞還是引用傳遞?
值傳遞
預設情況下,陣列的參考是值傳遞的。這意味著會建立一個引用的副本並傳遞給方法。在方法內部對陣列內容所做的變更將對呼叫程式碼可見,但任何對陣列本身的重新賦值都不會傳回呼叫方。
引用傳遞
要修改引用本身,可以使用 ref
修飾符。透過引用傳遞數組,允許呼叫方看到對引用的任何更改,包括重新賦值。
範例
以下程式碼示範了值傳遞和引用傳遞之間的差異:
<code class="language-csharp">void Foo(int[] data) { data[0] = 1; // 调用方可见此更改 } void Bar(ref int[] data) { data = new int[20]; // 调用方可见此更改 }</code>
呼叫 Foo
時,傳遞的是引用的副本。在 Foo
中更改數組的內容將在呼叫程式碼中可見。但是,在 Foo
中對數組的重新賦值將不會被呼叫方看到。
相反,當使用 ref
修飾符呼叫 Bar
時,傳遞的是引用本身。對引用的任何更改,包括重新賦值,都將在呼叫程式碼中可見。
以上是C# 中如何將陣列傳遞給方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!