C# では、変数は値型または参照型のいずれかになります。値の型をメソッドに渡すとき、動作を変更するために ref キーワードが使用されます。ただし、参照型の場合、ref の目的はそれほど直観的ではありません。
C# では、参照型は、たとえそうでなくても、常に参照としてメソッドに渡されます。 ref キーワード。これは、メソッド内で参照を変更すると、メソッド外の元の変数に影響を与えることを意味します。説明するには:
var x = new Foo();
void Bar(Foo y) { y.Name = "2"; // Modification to the reference within the method } Bar(x); Console.WriteLine(x.Name); // Output: "2"
この例では、ref キーワードなしで x を Bar メソッドに渡しますが、x.Name の値は依然として変更されており、reference の参照渡し動作を示しています。 types.
参照型の受け渡しには通常、ref キーワードは必要ありませんが、これは、参照自体を再割り当てするという特定のシナリオで重要な役割を果たします。 ref がない場合、メソッド内の変更はメソッドに渡されるローカル参照にのみ影響し、元の変数は変更されません。ただし、ref を使用すると、変数が指す実際の参照を変更できます。以下に例を示します。
Foo foo = new Foo("1"); void Bar(ref Foo y) { y = new Foo("2"); // Reassigning the reference y points to } Bar(ref foo); Console.WriteLine(foo.Name); // Output: "2"
このシナリオでは、ref キーワードを使用すると、foo が指す参照を再割り当てし、foo の値を効果的に変更できます。
以上がC# で参照型で `ref` を使用するのはいつ、なぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。