【发布时间】:2011-01-24 08:02:57
【问题描述】:
我正在为一个小项目创建一个简单的类,并决定只为快速 impl 添加一个析构函数,而不是使用 IDisposable,每当有一个带有访问修饰符的析构函数时,我都会遇到编译器错误。
public class MyClass
{
public ~MyClass()
{
// clean resources
}
}
我尝试了公共、私有、受保护和内部。它在没有访问修饰符的情况下运行良好。由于this article shows ~destructor 本质上是受保护的 Finalize 函数的语法糖,我觉得奇怪的是,您至少不能在析构函数上使用 protected。文章确实说“无法调用析构函数。它们会被自动调用。”这就是强制执行该行为的方式吗?
无论如何,我最终还是实现了IDisposable,但我很好奇...还有什么其他原因不能将访问修饰符放在析构函数上?
【问题讨论】:
-
如果析构函数是受保护方法的语法糖,你为什么希望能够放一个访问修饰符?
标签: c# destructor access-modifiers