【发布时间】:2011-12-31 17:46:18
【问题描述】:
根据this,它声明Destructors cannot be inherited or overloaded. 在我的例子中,对于所有子类,析构函数都是相同的。这是否几乎告诉我我必须在每个子类中定义相同的析构函数。有没有办法在基类中声明析构函数并处理销毁?假设我有这样的事情:
class A
{
~A()
{
SomethingA();
}
}
class B : A
{
}
B b = new B();
B被销毁时,它的析构函数不会被调用?
【问题讨论】:
-
似乎很容易测试。您是否有未运行
b的析构函数的示例? -
@Yuck 好吧,这可能让我想到另一个愚蠢的问题......“什么时候真正调用析构函数?是在垃圾收集时,当变量超出范围时?
-
这是一个不同的问题。我鼓励你这样发布它,但它已经被如此频繁地询问了......长话短说:关于垃圾收集,但这可能会在很多之后发生或根本不会发生.
-
最好阅读析构函数以及为什么不使用它们。我怀疑你根本不需要。
标签: c# inheritance destructor