什么类在其构造函数中调用SuppressFinalize,以使您的dispose调用无用?

时间:2011-10-25 04:14:25

标签: c# .net dispose suppressfinalize

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

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

1 个答案:

答案 0 :(得分:6)

你的问题假设无效。致电SuppressFinalizeDispose的有用性无关。当您通过显式或通过using块调用它时,Dispose方法仍将执行其中所写的任何操作。

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