ホームページ >バックエンド開発 >C++ >オブジェクトを変更するためのc# 's` ref`と `out`キーワードの違いは何ですか?

オブジェクトを変更するためのc# 's` ref`と `out`キーワードの違いは何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-24 12:01:09414ブラウズ

What's the Difference Between C#'s `ref` and `out` Keywords for Modifying Objects?

c#refおよびoutキーワード:明確な区別

C#では、メソッドが引数として渡されたオブジェクトを変更する必要がある場合、

およびrefキーワードが重要な役割を再生します。 どちらも変更を可能にしますが、それらの動作は大きく異なります out

キーワード:既存のオブジェクトの変更ref キーワードは、メソッドがコピーではなく引数として渡された元のオブジェクトで直接動作することを意味します。メソッド内の変更は、元のオブジェクトに直接影響します。重要なことに、オブジェクトはメソッドに渡される前に

を初期化する必要があります。 ref キーワード:オブジェクトの作成と返信

逆に、outキーワードは、メソッドがオブジェクトの初期化に責任があることを示します。このメソッドは値をオブジェクトに割り当て、この新しく初期化されたオブジェクトが発信者に返されます。 パラメーターは宣言されますが、メソッド呼び出しの前に初期化は必要ありません。

適切なキーワードを選択outout

の選択は、メソッドの目的に依存します:

refを使用して、既存のoutオブジェクトを変更します。このメソッドは新しいオブジェクトを作成しません。

  • を使用してrefを作成し、新しいオブジェクトを返します。この方法は、初期化の原因です。
  • 実例:out

を使用して既存のを変更します。

を使用して
<code class="language-csharp">public void ModifyWithRef(ref MyClass someClass)
{
    someClass.Property1 = 10;
}

public void CreateWithOut(out MyClass someClass)
{
    someClass = new MyClass { Property1 = 20 };
}</code>
を作成して初期化します。 これらのメソッドを呼び出すときの初期化要件の違いに注意してください

以上がオブジェクトを変更するためのc# 's` ref`と `out`キーワードの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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