如何在C#XNA中调用析构函数

Nas*_*ret 6 c# xna destructor

我有一个对象,只是想在某些事件上销毁它.如何在XNA中调用析构函数?

key*_*rdP 6

将对象设置为null,垃圾收集器将在下次运行时将其拾取.

作为旁注,如果对象是您经常创建的东西(敌人,子弹等......),那么您可能想要使用而不是删除对象.这意味着对象被回收,因此,垃圾收集器的调用次数减少,这将提高性能.

  • OMG,这是你想在.NET中做的最后一件事 (2认同)
  • @Nashgharet它在你的情况下不工作的原因是事件处理程序将对象保留在范围内,因为事件永远不会从对象中解除绑定.在收集事件之前,您需要调用 - =删除事件. (2认同)
  • @Nick Berardi - 不,它对记忆没有直接影响.问题是在游戏中破坏对象(即失去参考)(因为它是`XNA`).IDisposable模式肯定对删除有效,但OP不关心内存删除,而是破坏对象.在实时游戏中强制GC是粗心的(特别是在XBox/WP7上),并且`pooling`仍然比`disposing`(常见的objs)更好.从内存的角度来看,没有必要设置为`null`,但它有助于当试图从游戏中移除敌人时.子弹什么时候会自动超出范围? (2认同)