2.10C#函数成员之终结器(Finalizer)

终结器声明

终结器(Finalizer),以前称为 析构函数(Destructor),用于在类实例被垃圾回收器回收时执行任何必要的最终清理操作。因此,无法在结构中定义终结器,它们仅用于类。

终结器的声明方式与方法相似,名称为所属类的名称前加~波浪号,不过既不能包含参数和可访问性修饰符,也不能进行显式调用。

class Car
{
    //常规语法
    ~Car()  // finalizer
    {
        // cleanup statements...
    }
}
using System;

public class Destroyer
{
    public override string ToString() => GetType().Name;
    //Expression-bodied表达式声明法
    ~Destroyer() => Console.WriteLine($"The {ToString()} finalizer is executing.");
}

重载

终结器不支持重载。

原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/csharp/csharplang/8267.html

(0)
上一篇 2021年2月9日 20:05
下一篇 2021年2月24日 21:08

相关推荐

  • 3.5C#引用类型之接口(Interface)

    1.接口声明 接口包含一组非抽象class或struct必须实现的相关功能的定义。 2.继承 接口 可以继承自多个基接口。 3.实现 3.1实现 类 或 结构 可以实现多个接口,实现接口的类或结构必须实现其所有未提供默认实现的成员并匹配接口中的成员签名,非必须重写实现具有默认实现的成员。 3.2默认实现 接口…

    C#语言教程 2021年3月5日
    05650
  • 1.2C#语言的标识符(Identifier)和关键字(Keyword)

    1.标识符 标识符必须以字母(A~Z 和 a~z)或 下划线(_) 开头,后续可以是任何字母(A~Z 和 a~z)、数字(0~9)和 下划线(_)。标识符区分大小写。 2.命名约定 标识符不应包含两个连续的__字符。这些名称是为编译器生成的标识符保留的。 3.关键字 关键字 是对编译器有特殊意义的预定义的保留…

    C#语言教程 2021年1月2日
    04790
  • 3.15C#语言的可访问性(Accessibility)

    访问修饰符 程序集 是通过在单个编译中编译一个或多个 .cs 文件而创建的 .dll 或 .exe。 调用方的位置 public protected internal protected internal private protected private 在类内 ✔️️ ✔️ ✔️ ✔️ ✔️ ✔️ 派生类(相同程序…

    C#语言教程 2021年3月15日
    05710

发表回复

登录后才能评论