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

1.终结器声明

终结器(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.");
}

2.重载

终结器不支持重载。

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

(0)
上一篇 2021年2月10日 12:19
下一篇 2021年2月11日 19:49

相关推荐

  • 2.8C#函数成员之运算符(Operator)

    1.运算符声明 所有运算符都必须声明为 public 和 static。 2.隐式和显式运算符 implicit 或 explicit 关键字分别用于定义隐式转换或显式转换,定义转换的类型必须是该转换的源类型或目标类型,可用两种类型中的任何一种类型来定义两种用…

    C#语言教程 2021年2月8日
    02500
  • 2.3C#数据成员之字段(Field)

    字段是与类或类实例相关联的变量,字段定义存储位置。 1.字段声明和初始化 同变量。 2.字段分类 名称 修饰符 静态字段 用 static 修饰 实例字段 无 static 修饰 3.readonly修饰符 在字段声明中,readonly 修饰符表示只能 在声明期间初始化时或在同一个类的静态或实例构造函数中 …

    C#语言教程 2021年2月3日
    07080
  • 3.11C#类型之元组(ValueTuple)值类型和元组(Tuple)引用类型

    1.元组声明和初始化 元组提供了简洁的语法来将多个数据元素组合在一个轻型数据结构里。 通过声明 ( 和 ) 之间的成员的类型和名称来实例化元组。 2.访问成员 3.析构(Deconstruct)元组 析构的过程恰恰与元组的声明和初始化相反,析构是将已存在的元组析构成多个单独的变量…

    C#语言教程 2021年3月11日
    07700

发表回复

登录后才能评论