想知道這是否是一種可接受的方式從本身終止對象?由於將對象設置爲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