1

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

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

4

1 回答 1

6

你的问题做出了一个无效的假设。调用SuppressFinalizeDispose. 当您调用 Dispose 方法时,无论是显式调用还是通过using块调用,Dispose 方法仍然会执行其中写入的任何操作。

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

于 2011-10-25T04:23:01.010 回答