什么类在其构造函数中调用SuppressFinalize,使得dispose调用无效
本文关键字:调用 SuppressFinalize dispose 无效 使得 构造函数 什么 | 更新日期: 2023-09-27 18:12:31
有一些类,如DataTable已经在其构造函数中调用SuppressFinalize,因此没有必要在其上调用dispose/use using。(因为dispose是为了提前释放,但是没有什么要释放的)
那么,我想知道这样的类的列表或者通过反射找到这样的类的列表的方法?
你的问题做了一个无效的假设。调用SuppressFinalize
与Dispose
的有用性无关。Dispose方法仍然会在调用它时执行写在它里面的任何操作,无论是显式调用还是通过using
块调用。
通常,Dispose将调用SupressFinalize,但这是因为当您遵循典型的Dispose模式时,Dispose将执行从终结器运行的代码。因为代码已经运行过了,所以不需要结束,这是一个相对昂贵的操作,因此Dispose将调用SupressFinalize。