IDisposable接口、Dispose方法和Close方法
using语句提供了调用实现了IDisposable接口对象的Dispose方法的快捷方法。相当于实现了try/finally语句
标准销毁语义
1.对象一旦被销毁就无法恢复,调用方法会异常
2.可以重复调用Dispose,不会报错
3.会自动循环调用Dispose
4.一般非托管代码都需要销毁代码来释放资源,文件,套接字
5.当在Dispose自定义了某些操作后,可以选择性的执行这些操作,相当于就是在类中添加一个bool属性,在Dispose中判断这个属性来决定是否要执行某些操作
6.Dispose本身并没有释放内存,只有在垃圾回收时才会释放内存
7.在Dispose中可以将字段设置为null,也可以取消事件的订阅。还可以定义一个IsDispose的属性
自动垃圾回收
1.垃圾回收在不引用对象后不是立即回收的,而是周期性进行的,根据某种策略来执行。
2.垃圾回收也不是一次性回收所有的未引用变量,而是先回收新的未引用变量。旧的来不及就先不回收了
根
1.根可以保存对象的存活,如果没有被根直接或间接的引用,则表示可以被GC
2.根的种类
1.当前正在执行的方法(子方法)中的局部变量或者参数
2.静态变量
3.终结队列中的对象
终结器
1.若对象拥有终结器,则在对象从内存中释放之前,会执行终结器。(析构函数)
2.如果是可以被删除的对象,如果没有终结器则会被直接删除&#