パラメータの受け渡しにおける out
と ref
をマスターする
メソッドと外部変数を操作する場合、ref
および out
パラメーターは、メソッドのスコープ外のデータを変更する効率的な方法を提供します。 どちらもローカル スコープを超えて変数を変更しますが、そのニュアンスを理解することが、ジョブに適切なツールを選択する鍵となります。
out
最適化されたデータ処理
変数の初期値がメソッドの関数にとって重要でない場合は、out
キーワードを使用します。このアプローチは、不要な初期データの転送を回避し、帯域幅を節約し、パフォーマンスを向上させるため、大規模なデータセットやプロセス間通信を扱う場合に特に効率的です。 out
パラメーターは、メソッドの入力値が無視されることを明確に示します。
ref
価値維持用
対照的に、ref
は、変数の初期値がメソッドのロジックにとって重要な場合に最適です。 メソッドで変数の既存の値の使用と変更の両方が必要な場合は、ref
を使用します。
初期化に関する考慮事項
微妙だが重要な違いは初期化にあります。out
パラメータは事前初期化を必要としませんが、ref
パラメータはメソッドに渡す前に初期化する必要があります。この柔軟性により、out
は、初期値がすぐに入手できない場合に特に役立ちます。
実践例
out
と ref
の適切な使用法を示すコード スニペットを見てみましょう:
out
パラメータの例:
<code class="language-c#">string firstName, lastName; person.GetFullName(out firstName, out lastName);</code>
ここで、GetFullName()
は、firstName
と lastName
の初期値 (おそらく未定義) を必要とせずに 2 つの名前コンポーネントを取得します。 out
を使用すると、これらの初期値の不必要な送信が防止されます。
ref
パラメータの例:
<code class="language-c#">string userName = "invalidUser"; bool isValid = validator.ValidateUserName(ref userName);</code>
この場合、ValidateUserName()
は userName
変数を変更します。 ref
は、メソッドが既存の userName
値で動作することを保証し、場合によっては値を修正して検証結果を返します。
以上が`C# でのパラメーターの受け渡しに「ref」と「out」を使用するのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。