Csharp/C#教程:C# 的析构以及垃圾回收实例分析分享

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

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

usingSystem; namespaceConsoleApplication { publicclassProgram { publicstaticvoidMain(string[]args) { Console.WriteLine("HelloWorld!"); fun(); GC.Collect();//4、若不显式回收,则控制台不打印回收行。 Console.WriteLine("end!"); } publicstaticvoidfun(){//1、此处必须有static Aa=newA(); a.Dispose(); //GC.Collect();//3、此处回收无效,因为a还没释放 } publicclassA:IDisposable{ /*protectedoverridevoidFinalize(){//2、析构实际是重载Finalize,但不能直接写重载。编译器自动重写Finalize,所以代码中,只能用析构函数。 Console.WriteLine("someonedisposed!"); }*/ ~A(){ Console.WriteLine("someoneFinalize!"); } publicvoidDispose(){ Console.WriteLine("someonedisposed!"); } } } }

1、该代码的输出为:

HelloWorld! someonedisposed! end! someoneFinalize!

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

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

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

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

您可能感兴趣的文章:C#学习笔记整理_深入剖析构造函数、析构函数C#中构造函数和析构函数用法实例详解C#中析构函数、Dispose、Close方法的区别全面解读C#编程中的析构函数用法

标签: 垃圾回收

C#图片处理类分享

C#实现发送手机验证码功能

上述就是C#学习教程:C# 的析构以及垃圾回收实例分析分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/907900.html

(0)
上一篇 2021年10月25日
下一篇 2021年10月25日

精彩推荐