如何在自己的类中删除对象的实例?例如,如果我有一个名为 Bullet 的类,并且它与类 Box 的实例发生冲突,那么在它碰撞后删除子弹实例将是合乎逻辑且简单的。我通常可以通过将其设置为null来执行此操作,但我无法在其自己的类中将类的实例设置为null,因为如果我尝试
this = null;
由于此是只读的,因此无效。我的问题有两方面:
1)有一种简单的方法吗?
2)如果没有,那么什么是强有力的替代方案?
答案 0 :(得分:0)
简短回答是:你显然不能因为实例不是对自身的引用 - 你需要删除外部引用。
答案很长: 您需要在其他地方删除它。这可以是你调用检测的地方(即调用Bullet)。例如:
if(bullet.DetectCollision())
{
bullet=null;
}
或者,让另一个类来管理实例并从某种集合中删除实例。
如果您的类可以实现IDisposable,您可能也想处理调用Dispose()。
但是,通过您提供的描述很难知道您真正需要什么。