C# 与 C++ 中的析构函数语法

您无法从 C# 或 C++ 编程语言中调用或重写 Object.Finalize 方法。 C# 将析构函数用作编写终止代码的机制,如 析构函数(C# 编程指南) 中所述。

在 C++ 中,析构函数语法用于实现 Dispose 方法。 C++ 为实现 Finalize 方法提供了自己的语法,如 Destructors and Finalizers in Visual C++ 中所述。

注意注意

在 .NET Framework 2.0 版之前,C++ 与 C# 一样也使用析构函数用法来实现 Finalize 方法,当时没有特殊语法来实现 Dispose 方法。若要编译使用早期语法的 C++ 代码,请使用 /clr:oldSyntax 编译器选项。

尽管看起来相似,但 C# 和 C++ 析构函数的语义与未托管 C++ 析构函数的语义并不相同。 托管代码不支持任何与 C++ 析构函数语义相似的语义。

请参见

参考

Finalize

/clr(公共语言运行时编译)

概念

重写 Finalize 方法

其他资源

清理非托管资源