C#中int[]
是引用型別還是值型?
在C#中,像int
這樣的基本資料型別屬於值型別。它們直接儲存在變數中,當傳遞給方法或賦值給其他變數時,其值會被複製。
然而,值類型的陣列行為有所不同。即使數組的元素是值類型,數組本身也是引用類型。這是因為陣列引用指向儲存數組元素的記憶體位置,而不是元素本身。
對函數呼叫的影響
將陣列傳遞給函數時,無需指定ref
或out
修飾符,因為陣列預設情況下就是按引用傳遞的。
接收數組的函數只能存取數組的引用,而不是實際的元素。如果函數修改了元素,這些變更將反映在原始陣列中。
範例:
考慮以下程式碼:
<code class="language-csharp">int[] array = { 1, 2, 3 }; ModifyArray(array); Console.WriteLine(array[0]); // 输出:4</code>
ModifyArray
函數修改了陣列的第一個元素:
<code class="language-csharp">public static void ModifyArray(int[] arr) { arr[0] = 4; }</code>
即使我們按值傳遞數組(沒有ref
修飾符),函數中所做的更改也會反映在原始數組中,因為數組是引用類型。
以上是C# 中值型別數組(例如「int[]」)是引用型別還是值型別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!