什么类在其构造函数中调用SuppressFinalize,使得dispose调用无效



有一些类,如DataTable已经在其构造函数中调用SuppressFinalize,因此没有必要在其上调用dispose/use using。(因为dispose是为了提前释放,但是没有什么要释放的)

那么,我想知道这样的类的列表或者通过反射找到这样的类的列表的方法?

你的问题做了一个无效的假设。调用SuppressFinalizeDispose的有用性无关。Dispose方法仍然会在调用它时执行写在它里面的任何操作,无论是显式调用还是通过using块调用。

通常,Dispose将调用SupressFinalize,但这是因为当您遵循典型的Dispose模式时,Dispose将执行从终结器运行的代码。因为代码已经运行过了,所以不需要结束,这是一个相对昂贵的操作,因此Dispose将调用SupressFinalize。

最新更新