ホームページ >バックエンド開発 >C++ >値型の配列 (例: `int[]`) は、C# の参照型ですか、それとも値型ですか?

値型の配列 (例: `int[]`) は、C# の参照型ですか、それとも値型ですか?

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 のような基本的なデータ型は値型です。これらは変数に直接保存され、その値はメソッドに渡されるとき、または他の変数に割り当てられるときにコピーされます。

ただし、値型の配列の動作は異なります。配列の要素が値型であっても、配列自体は参照型です。これは、配列参照が要素そのものではなく、配列要素が格納されているメモリ位置を指しているためです。

関数呼び出しへの影響

配列を関数に渡す場合、配列はデフォルトで参照によって渡されるため、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。