ホームページ > バックエンド開発 > C++ > C# で参照型で `ref` を使用するのはいつ、なぜですか?

C# で参照型で `ref` を使用するのはいつ、なぜですか?

Barbara Streisand
リリース: 2025-01-06 20:41:13
オリジナル
502 人が閲覧しました

When and Why Use `ref` with Reference Types in C#?

C での参照型変数の受け渡しにおける "ref" の役割を理解する

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 がない場合、メソッド内の変更はメソッドに渡されるローカル参照にのみ影響し、元の変数は変更されません。ただし、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 サイトの他の関連記事を参照してください。

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