私は XNA で構築しているゲームの C# 最適化について多くの調査を行ってきましたが、ローカル変数がインスタンス変数であるかどうかは、常に更新して使用するとパフォーマンスが向上するかどうかはまだよくわかりません。
http://www.dotnetperls.com/optimizationによると、パラメーターとローカル変数を避ける必要があります。つまり、インスタンス変数がパフォーマンスの点で最良のオプションです。
しかし、少し前に、私は別の StackOverflow の投稿 (どこにあったかを見つけることができないようです) を読んで、ローカル変数はメモリの一部に格納されており、アクセスがはるかに高速であり、インスタンス変数が設定されるたびに、新しい値を割り当てる前に、面倒な追加手順として以前の値を消去する必要があります。
設計上、そのような状況でインスタンス変数を使用するとカプセル化が壊れる可能性があることは知っていますが、パフォーマンスについては非常に興味があります。現在、私のゲームでは、クラス内の 7 つのメソッドのうち 3 つにローカル変数を渡していますが、変数をインスタンス変数に簡単に昇格させ、パラメーターの受け渡しとローカル変数を完全に回避することができました。
では、どちらが良いでしょうか?