C#析构函数与垃圾回收

析构函数

1.定义:垃圾回收程序最终销毁对象之前调用的方法,该方法称为析构函数

析构函数通常形式如下:
~类名()
{
 
}

2. 析构函数的声明类似构造函数,除了在析构函数开头要使用 ‘~’,另外要注意,析构函数,没有返回值,且不带任何参数。

3. 析构函数的功能是用来释放一个对象的。在对象删除前,用它来做一些清理工作,它与构造函数的功能正好相反。

垃圾回收机制

1. 什么是垃圾回收?

在编写程序时,会产生很多的数据 比如:int string 变量,这些数据都存储在内存里,如果不合理的管理他们,就会内存溢出导致程序崩溃

C#内置了自动垃圾回收GC,在编写代码时可以不需要担心内存溢出的问题 变量失去引用后 GC会帮我们自动回收.

2. 什么样子的对象才会给回收?

GC只会回收  的内存 ,而 值类型在  中的使用完后马上就会给释放,并不需要 GC 进行处理,堆中的没有被引用或者null的对象才会被回收,静态的成员 会在程序结束后销毁。

3. 什么时候进行垃圾回收?

什么时候回收这些都由操作系统决定,一般不需要进行理会全由系统调用,,明确如有特殊情况的需要进行释放 也可以强制的垃圾回收

 
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();
            test = null;
            //强制开启回收
            GC.Collect();
            Console.ReadKey();
        }
    }
 
    public class Test {
        public int a;
        ~Test() {
            Console.WriteLine("ZHIXINGLE");
        }
 
   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值