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
修飾子なしで) 値で渡しても、配列は参照型であるため、関数で行われた変更は元の配列に反映されます。
以上が値型の配列 (例: `int[]`) は、C# の参照型ですか、それとも値型ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。