我很想知道为什么 C# 中不允许使用静态析构函数。请注意,我并不是假设它们以任何其他语言存在。
我可以上这样的课。
class A
{
static A()
{
// here I can load a resource that will be avaliable for all instances
// of this class.
}
}
当应用程序结束时,我可能需要释放资源。
因此,静态析构函数的语义可能如下:在应用程序结束时调用,用于包含它并在应用程序中初始化的类。
最佳答案
您的语义是一种可能,但我想您还没有检查它对语言的所有影响。在我所知道的大多数(或多或少)动态语言中,销毁是一个看起来要复杂得多的主题。当类不再被引用时,为什么不调用析构函数呢?或者如果组件被卸载?应该以什么顺序调用析构函数? ...?
如果您只想在应用程序结束时执行一些代码,请查看 .Net 文档。有更简单、更可靠的方法可以做到这一点。
关于c# - 为什么不在 C# 中使用静态析构函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12709276/