我一直在为使用 XNA 构建的游戏进行 C# 优化方面的大量研究,但我仍然不太了解局部变量是否是实例变量,在不断更新和使用时会提供更好的性能。
根据http://www.dotnetperls.com/optimization,您应该避免使用参数和局部变量,这意味着实例变量是性能方面的最佳选择。
但是不久前,我在另一篇 StackOverflow 帖子上读到(我似乎找不到它在哪里),局部变量存储在内存的一部分中,访问速度要快得多,并且每次设置实例变量时,在分配新值之前,必须先删除以前的值,这是一个繁琐的额外步骤。
我知道在设计方面,在这种情况下使用实例变量可能会破坏封装,但我对性能非常好奇。目前在我的游戏中,我将局部变量传递给类中 7 个方法中的 3 个,但我可以轻松地将变量提升为实例变量,并且能够完全避免参数传递和局部变量。
那么哪个会更好呢?