类中的析构函数和 Finalize 方法之间有什么区别(如果有)?
我最近发现 Visual Studio 2008 认为析构函数与 Finalize 方法同义,这意味着 Visual Studio 不允许您在类中同时定义这两种方法。
例如下面的代码片段:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
在析构函数中调用 Finalize 时出现以下错误:
以下方法或属性之间的调用是不明确的:
'TestFinalize.~TestFinalize()' 和 'TestFinalize.Finalize()'
如果对 Finalize 的调用被注释掉,则会出现以下错误:
类型“ManagementConcepts.Service.TestFinalize”已经定义了一个名为
使用相同的参数类型“最终确定”
C# 中的析构函数重写System.Object.Finalize
方法。你have to使用析构函数语法来执行此操作。手动覆盖Finalize
会给你一条错误消息。
基本上你想用你的Finalize
方法声明是hiding基类的方法。它将导致编译器发出警告,可以使用以下命令将其静音new
修改器(如果它能工作的话)。这里要注意的重要一点是,您can't both override
并声明一个new
同时具有相同名称的成员,因此同时具有析构函数和Finalize
方法会导致错误(但是你can,虽然不推荐,但声明一个public new void Finalize()
方法(如果您没有声明析构函数)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)