ホームページ >バックエンド開発 >C++ >C# の参照型で「ref」を使用する場合とその理由は何ですか?

C# の参照型で「ref」を使用する場合とその理由は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-06 20:49:44876ブラウズ

When and Why Use

C# の参照型変数における "ref" の重要性

C# プログラマーは、参照を扱うときに "ref" キーワードに遭遇することがよくあります。 -type 変数 (クラスなど)。値型での "ref" の動作はよく知られていますが、参照型の目的はそれほど明確ではありません。

背景

値を渡すとき「ref」キーワードを指定せずに値でタイプすると、変数のコピーが作成され、メソッドに渡されます。ただし、参照型を使用する場合、「ref」なしで変数を渡すことには、すでに変数自体の参照が含まれています。

参照型での "ref" の使用

それでは、参照型で「ref」を使用する利点は何ですか?主な違いは、変数の参照を再割り当てできることです。

次の例を考えてみましょう。

var x = new Foo();

// Without "ref"
void Bar(Foo y)
{
    y.Name = "2";
}

// With "ref"
void Bar(ref Foo y)
{
    y.Name = "2";
}

// Test
Bar(x);

最初のケース、y は x への参照であり、y.Name を変更するとオブジェクトが更新されます。ただし、2 番目のケースでは、「ref」を利用して、何かユニークなことを行うことができます。

「ref」を使用した Bar メソッド内で、y が指す参照を再割り当てできます。例:

Foo foo = new Foo("1");

// Reassign reference via "ref"
void Bar(ref Foo y)
{
    y = new Foo("2");
}

Bar(ref foo);

// After Bar() call
Console.WriteLine(foo.Name);

ここで、Bar(ref foo) の呼び出しにより、新しい Foo インスタンスが foo に効果的に割り当てられます。これは、元の foo 変数が現在、「2」という名前の別のオブジェクトを指していることを意味します。

結論

したがって、参照型を持つ "ref" は、オブジェクト参照を再割り当てできる柔軟性により、他の方法では不可能な高度なシナリオが可能になります。

以上がC# の参照型で「ref」を使用する場合とその理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。