C# 的析构以及垃圾回收实例分析

发布时间 - 2026-01-11 02:06:30    点击率:

C# 的析构以及垃圾回收实例分析

看书时,自己写的例子代码,了解到几个知识点,记载下来。同时发现自己手写代码的能力比较弱,还是得多写一下。

using System;
namespace ConsoleApplication
{
  public class Program
  {
    public static void Main(string[] args)
    {
      Console.WriteLine("Hello World!");
      fun();
      GC.Collect();                //4、若不显式回收,则控制台不打印回收行。
      Console.WriteLine("end!");
    }
    public static void fun(){            //1、此处必须有static
      A a=new A();
      a.Dispose();
      //GC.Collect();               //3、此处回收无效,因为a还没释放
    }
    public class A:IDisposable{
     /* protected override void Finalize(){     //2、析构实际是重载Finalize,但不能直接写重载。编译器自动重写Finalize,所以代码中,只能用 析构函数。    
         Console.WriteLine("some one disposed!");
      }*/
       ~A(){
         Console.WriteLine("some one Finalize!");
      }
      public void Dispose(){
         Console.WriteLine("some one disposed!");
      }
    }
  }
}

1、该代码的输出为:

Hello World!                                         
some one disposed!                                       
end!                                              
some one Finalize! 

这个回收像极了异步调用!

2、IDisposable接口的Dispose方法,目的是“不用户不再使用对象时,要手工调用它”
比如文件打开,数据库访问等。需要及时释放。

明显这个概念和垃圾回收是两个概念。释放后,该对象仍然存在,有待运行环境来回收,见最后一行。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C#  # 的析构以及垃圾回收  # 析构  # c# 垃圾回收(GC)优化  # c#如何用好垃圾回收机制GC  # C#减少垃圾回收压力的字符串操作详解  # 详解C#中的定时器Timer类及其垃圾回收机制  # C#开发中的垃圾回收机制简析  # C#垃圾回收机制的详细介绍  # 浅谈关于C#的垃圾回收机制  # C#垃圾回收的优化实践  # 几个  # 运行环境  # 还没  # 希望能  # 重写  # 发现自己  # 谢谢大家  # 只能用  # 若不  # 较弱  # 像极了  # 多写  # 目的是  # Program  # public  # void  # string  # Main  # static  # ConsoleApplication 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Laravel如何使用.env文件管理环境变量?(最佳实践)  黑客入侵网站服务器的常见手法有哪些?  如何用好域名打造高点击率的自主建站?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel中的withCount方法怎么高效统计关联模型数量  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  WEB开发之注册页面验证码倒计时代码的实现  清除minerd进程的简单方法  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  如何快速搭建高效服务器建站系统?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何使用Collections进行数据处理?(实用方法示例)  Laravel如何自定义错误页面(404, 500)?(代码示例)  JavaScript模板引擎Template.js使用详解  JavaScript如何操作视频_媒体API怎么控制播放  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  香港服务器部署网站为何提示未备案?  Python文件异常处理策略_健壮性说明【指导】  长沙企业网站制作哪家好,长沙水业集团官方网站?  潮流网站制作头像软件下载,适合母子的网名有哪些?  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel怎么使用Intervention Image库处理图片上传和缩放  如何在IIS中新建站点并解决端口绑定冲突?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel怎么上传文件_Laravel图片上传及存储配置  Thinkphp 中 distinct 的用法解析  如何将凡科建站内容保存为本地文件?  EditPlus中的正则表达式实战(5)  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道  北京企业网站设计制作公司,北京铁路集团官方网站?  JavaScript如何实现继承_有哪些常用方法  实现点击下箭头变上箭头来回切换的两种方法【推荐】  linux top下的 minerd 木马清除方法  手机网站制作与建设方案,手机网站如何建设?  如何在阿里云服务器自主搭建网站?  如何用wdcp快速搭建高效网站?  百度浏览器如何管理插件 百度浏览器插件管理方法  如何用PHP快速搭建CMS系统?  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧