一:总结 1.Finalize方法(C#中是析构函数,以下称析构函数)是用于释放非托管资源的,而托管资源会由GC自动回收.所以,我们也可以这样来区分 托管和非托管资源.所有会由GC自动回收的资源,就是托管的资源,而不能由GC自动回收的资源,就是非托管资源.在我们的类中直接使用非托管资源的情况很 少,所以基本上不用我们写析构函数. 2.大部分的非托管资源会给系统带来很多负面影响,例如数据库连接不被释放就可能导致连接池中的可用数据库连接用尽.文件不关闭会导致其它进程无法读写这个文件等等. 实现模型: