1. ホーム
  2. c#

[解決済み] .NETにおけるrefパラメータとoutパラメータの違い【重複】について

2022-03-23 02:13:02

質問

とはどのような違いがあるのでしょうか? refout のパラメータは何ですか?一方が他方よりも有用である状況とはどのようなものでしょうか?一方が使用でき、他方が使用できないコードスニペットとはどのようなものでしょうか?

どのように解決するのですか?

ほとんど同じです。ただ、唯一の違いは、引数として渡した変数が out パラメータとして渡す場合は初期化する必要はありませんが ref パラメータに何か設定する必要があります。

int x;
Foo(out x); // OK

int y;
Foo(ref y); // Error: y should be initialized before calling the method

Ref パラメータは、変更される可能性のあるデータ用です。 out パラメータは、その関数の追加出力となるデータです (例. int.TryParse のように、すでにその返り値を何かに使っているような場合です。