「ref」の代わりに「out」を使用する場合
「out」パラメータと「ref」パラメータのどちらかを選択する場合、「ref」が特に必要でない限り、デフォルトの選択は「out」です。
Out と Ref の違い
「ref」はメソッドがパラメーターとして渡された変数の元の値を変更できるようにしますが、「out」はこの機能を禁止します。初期値のマーシャリングは不必要な処理につながる可能性があるため、プロセスまたはマシン間でのデータ転送に関しては、この区別が重要になります。
「out」の使用に適したシナリオ
次のシナリオを考えてみましょう:
<code class="language-c#">person.GetBothNames(out a, out b);</code>
「person」をオブジェクト、「Get BothNames」を2つの値を取得するメソッドとすると、「a」と「b」の初期値はメソッドの動作とは関係ありません。この場合、「in」または「out」の使用は好みの問題ですが、初期値の無駄なマーシャリングを排除するために「out」を選択することをお勧めします。
「ref」の使用に適したシナリオ
一方、初期値の変更がメソッドの意図の一部である場合、「ref」は適切です。
<code class="language-c#">bool didModify = validator.SuggestValidName(ref name);</code>
「name」パラメータは参照によって渡されるため、「validator」メソッドがその値を変更し、変更を示す「didModify」を返すことができます。
つまり、ほとんどの場合、初期変数値を変更する必要がない場合は「out」を選択するのが適切ですが、そのような変更が必要な場合は「ref」が必要になります。
以上がC# の Out パラメーターと Ref パラメーター: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。