FillSomeData(ParameterData param, Result res)
メソッドを作成しました。これは、res
にデータを入力します(ラベルに記載されているとおり)。
Result
はクラスであり、構造体ではないため、FillSomeData
は実際にはres
に影響します。
コードレビューの後、同僚が、メソッドがref
を変更することを明確にするためだけに、res
をメソッドシグネチャに追加する(FillSomeData(ParameterData param, ref Result res)
に変更する)ことを要求しました。
これはref
キーワードの意図ではなく、間違っていると思います。
そのような状況で一般的で推奨される方法は何ですか?
番号
ref
キーワードの意味を理解している人にとっては、これによってメソッドの実際の動作がわかりにくくなります。より良い代替策は、このようなメソッドのよりわかりやすい名前を選択することです
FillSomeDataIntoResult(ParameterData param, Result res)
ref
の使用を回避することもできます。コードを変更して、書き込みを許可します。
Result res=CreateResult(param)
または
res.SomeData=CreateSomeData(param)
または
res.InitSomeData(CreateSomeData(param))
もちろん、後者を可能な解決策にするために、fillコードやResult
クラス、あるいはその両方を再構成する必要があるかもしれません。