C# 对象类型是否包含受保护的虚拟最终确定方法?
简言之,约瑟夫·阿尔巴哈里和本·阿尔巴哈里(O'Reilly)的C#6.0 2016年约瑟夫·阿尔巴哈里和本·阿尔巴哈里版权所有,978-1-491-92706-9 在第100-101页,说明对象类成员为:C# 对象类型是否包含受保护的虚拟最终确定方法?,c#,.net,finalizer,mscorlib,C#,.net,Finalizer,Mscorlib,简言之,约瑟夫·阿尔巴哈里和本·阿尔巴哈里(O'Reilly)的C#6.0 2016年约瑟夫·阿尔巴哈里和本·阿尔巴哈里版权所有,978-1-491-92706-9 在第100-101页,说明对象类成员为: public class Object { public Object(); public extern Type GetType(); public virtual bool Equals (object obj); public static bool E
public class Object
{
public Object();
public extern Type GetType();
public virtual bool Equals (object obj);
public static bool Equals (object objA, object objB);
public static bool ReferenceEquals (object objA, object objB);
public virtual int GetHashCode();
public virtual string ToString();
protected virtual void Finalize(); //<-- this one
protected extern object MemberwiseClone();
}
公共类对象
{
公共对象();
公共外部类型GetType();
公共虚拟布尔等于(对象obj);
公共静态布尔等于(对象objA、对象objB);
公共静态bool ReferenceEquals(对象objA、对象objB);
公共虚拟int GetHashCode();
公共虚拟字符串ToString();
受保护的虚拟void Finalize();//来自:
C#编译器不允许重写Finalize方法。
相反,您可以通过为您的应用程序实现析构函数来提供终结器
C#析构函数自动调用其基的析构函数
班级
您必须使用~ClassName()
来实现
Object.cs
是用C#
编写的,因此它不是Finalize()
我建议你读一下这个和这个
发件人:
此功能令人困惑,容易出错,并且被广泛误解
对于C++的用户来说,语法非常熟悉,但却有惊人的不同。
语义。在大多数情况下,使用该功能是危险的,
不必要的,或是错误的症状。
有时,您需要实现仅适用于以下专家的功能:
正在构建基础设施;这些功能应清楚标记
与其他语言的特性不太相似