ref
.NET のとパラメータの違いは何ですかout
? 一方が他方よりも便利な状況とはどのようなものですか? 一方が使用できて他方が使用できないコード スニペットはどのようなものですか?
ベストアンサー1
これらはほぼ同じです。唯一の違いは、パラメータとして渡す変数は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
その戻り値は既に何かに使用されています (例: )。