• C#析构函数与垃圾回收


    析构函数基本语法

    C#
    class Car
    {
        ~ Car()  // destructor
        {
            // cleanup statements...
        }
    }

    析构函数说明

    • 不能在结构中定义析构函数。只能对类使用析构函数。

    • 一个类只能有一个析构函数。

    • 无法继承或重载析构函数。

    • 无法调用析构函数。它们是被自动调用的。

    • 析构函数既没有修饰符,也没有参数。

    • 析构函数跟构造函数相反 构造函数可控制执行 析构函数不可控制

    托管资源和非托管资源

    托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收。

             非托管资源指的是.NET不知道如何回收的资源,最常见的一类非托管资源是包装操作系统资源的对象,例如文件,窗口,网络连接,数据库连接,画刷,图标等。这类资源,垃圾回收器在清理的时候会调用Object.Finalize()方法。默认情况下,方法是空的,对于非托管对象,需要在此方法中编写回收非托管资源的代码,以便垃圾回收器正确回收资源。

             在.NET中,Object.Finalize()方法是无法重载的,编译器是根据类的析构函数来自动生成Object.Finalize()方法的,所以对于包含非托管资源的类,可以将释放非托管资源的代码放在析构函数。

  • 相关阅读:
    jQuery5事件相关
    jQuery4操作表单+属性+样式
    ueditor不能上传mp4格式的视频--解决方案
    笔记本怎么设置WIfi热点
    em rem vw vh
    字体的使用,坑爹啊!
    font的使用
    photoshop简单切图
    HTTP的学习
    call apply bind的联系与区别
  • 原文地址:https://www.cnblogs.com/zhangchengye/p/5142955.html
Copyright © 2020-2023  润新知