質問: dic[key]; SetName(val);//valを使う何かしらの処理 } ``` と ``` void SetParam(string key) { SetName(dic[key]); } ``` ではガーベジコレクションに関係あるのでしょうか。 個人的には一時変数を用意した方が好きなのですが。 (単純に見た目が) ご回答よろしくお願いいたします。
回答: > > ここで訊きたいのは一時変数を用意することとガーベジコレクションが関係あるかです > > > 関係ありません。C#コンパイラーの最適化機能により、無駄(と判断した)変数への代入は適当に省略してくれるからです。ご質問のコード例でいえば、最適化オプションを付けてコンパイルすれば、2番目と3番目のソースはまったく同じバイナリコードが出力されます。 ですので、あまり気にすることはありません。 私は一時変数はよく作ります。その方がデバッグしやすいからです。