C# での参照型変数に "ref" を利用する
C# では、クラスなどの参照型変数は本質的に、値全体をコピーするのではなく、メソッドのパラメータとして渡されるときにメモリ アドレスを参照します。ただし、「ref」キーワードはこの動作をさらに一歩進め、参照型変数を使用した独自の操作を可能にします。
ref および非 ref 参照型パラメータの区別
「ref」キーワードなしで参照型変数をメソッドに渡す場合、次のようになります。例:
void Bar(Foo y) { y.Name = "2"; }
「y」パラメータは、元の変数と同じオブジェクトへの参照を受け取ります。ただし、メソッド内で "y" に加えられた変更は、元の変数には反映されません。
一方、次のように "ref" キーワードを使用すると、
void Bar(ref Foo y) { y.Name = "2"; }
元の変数と「y」パラメータの間のリンクを確立します。 「y」が同じオブジェクトを参照するだけでなく、「y」に加えられた変更は元の変数に直接影響します。
参照ポインタの変更
独自の利点参照型変数で「ref」を使用すると、参照自体を変更できるようになります。これは、基本的に、元の変数を別のオブジェクトを指すように再割り当てできることを意味します。例:
Foo foo = new Foo("1"); void Bar(ref Foo y) { y = new Foo("2"); } Bar(ref foo); // foo.Name == "2"
ここで、「Bar」メソッドは、「Name」プロパティが「2」に設定された新しいオブジェクトを指すように「foo」の参照を変更します。その結果、元の "foo" 変数は、変更されたプロパティを持つ新しく作成されたオブジェクトを参照するようになります。
したがって、参照型変数を含む "ref" キーワードにより、開発者は参照されたオブジェクトのプロパティを変更することができます。参照自体を変更することで、メソッド内の変数の動作に対する柔軟性と制御が向上します。
以上が`ref` キーワードは C# の参照型変数にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。