ホームページ > バックエンド開発 > C++ > `ref` キーワードは C# の参照型変数にどのような影響を与えますか?

`ref` キーワードは C# の参照型変数にどのような影響を与えますか?

Patricia Arquette
リリース: 2025-01-06 21:07:48
オリジナル
855 人が閲覧しました

How Does the `ref` Keyword Affect Reference-Type Variables in C#?

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート