想知道这是否是一种可接受的方式从本身终止对象?由于将对象设置为null本身内部为空
this = null;
是不可能的。我通常只是设置一个名为dispos或者bool的布尔,如果在终止它之后访问该对象,则抛出异常。但后来这发生在我身上,我认为这可能是一个更清洁的解决方案,但它似乎有点哈克,所以我想第二个意见。我应该坚持设置一个布尔或去与此。这也将允许垃圾收集器清理我的对象。
public class A
{
public A()
{
}
public void Method()
{
try
{
//Do Something.
}
catch
{
//If it fails destroy the object
Destroy(this);
}
}
private static void Destroy(A a)
{
a = null;
}
}
一个不会“将一个对象设置为null”,而是将null赋值给一个以前可能非空的*变量*(或其他可变存储位置)。这又可能会使先前命名的对象为no更强烈的可达性。 – 2012-07-23 01:35:26