首頁 >後端開發 >C++ >C# 中值型別數組(例如「int[]」)是引用型別還是值型別?

C# 中值型別數組(例如「int[]」)是引用型別還是值型別?

Linda Hamilton
Linda Hamilton原創
2025-01-12 08:33:43756瀏覽

Is an Array of Value Types (e.g., `int[]`) a Reference Type or a Value Type in C#?

C#中int[]是引用型別還是值型?

在C#中,像int這樣的基本資料型別屬於值型別。它們直接儲存在變數中,當傳遞給方法或賦值給其他變數時,其值會被複製。

然而,值類型的陣列行為有所不同。即使數組的元素是值類型,數組本身也是引用類型。這是因為陣列引用指向儲存數組元素的記憶體位置,而不是元素本身。

對函數呼叫的影響

將陣列傳遞給函數時,無需指定refout修飾符,因為陣列預設情況下就是按引用傳遞的。

接收數組的函數只能存取數組的引用,而不是實際的元素。如果函數修改了元素,這些變更將反映在原始陣列中。

範例:

考慮以下程式碼:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn