我是新来的.NET ..和我很困惑,在C#析构函数机制..please澄清为什么Finalize方法不能覆盖
在C#中的析构函数转换由CLR敲定方法。 如果我们尝试覆盖它(不使用析构函数),将会出错 错误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();
}
我认为他们明白,并且正在寻求解释_why_。 – 2010-04-06 17:48:59