析构函数(destructor):可以在一个类的实例不再被引用的时候执行一些操作,以清除或释放非托管资源
注意几点:
1.每个类只能有一个析构函数
2.析构函数不能有参数和访问修饰符,名称与类名相同,在类名前加~
3.析构函数只能用于类的实例,没有因此静态析构函数
Class1
{~Class1()
{ CleanupCode
}
}
重点:标准dispose模式(非常棒)
1.析构函数和Dispose方法的逻辑是,如果代码由于某种原因没有调用Dispose,那么析构函数应该调用它,并释放资源
2.在Dispose方法最后应调用GC.SuppressFinalize方法,通知CLR不要调用该对象的析构函数,因为代码的清除工作已经完成
下面的解释很重要