我是.net的新手.我对C#中的析构函数机制感到困惑.请澄清
在C#中,析构函数由CLR转换为finalize方法.如果我们尝试覆盖它(不使用析构函数),将收到错误错误2不要覆盖object.Finalize.相反,提供一个析构函数.
但似乎mscorlib.dll中的Object calss实现已将finalize定义为protected override void Finalize(){},那么为什么我们无法覆盖它,那是什么虚函数.
为什么这样的设计,是否与c ++析构函数概念一致.
另外,当我们去定义对象类时,没有提到finalize方法,那么hmscorlib.dll定义如何显示finalize函数.这是否意味着默认析构函数转换为finalize方法.
public class Object
{
public Object();
public virtual bool Equals(object obj);
public static bool Equals(object objA, object objB);
public virtual int GetHashCode();
public Type GetType();
protected object MemberwiseClone();
public static bool ReferenceEquals(object objA, object objB);
public virtual string ToString();
}
Run Code Online (Sandbox Code Playgroud)