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 中国語 Web サイトの他の関連記事を参照してください。