我应该释放()数据集和数据表吗?
DataSet和DataTable都实现了IDisposable,因此,根据传统的最佳实践,我应该调用它们的dist()方法。
然而,根据我到目前为止所读到的,DataSet和DataTable实际上没有任何非托管资源,因此Dispose()实际上并不能做很多事情。
另外,我不能就这么用using(DataSet myDataSet...)
因为DataSet有一个DataTable集合。
因此,为了安全起见,我需要迭代myDataSett.ables,处理每个DataTable,然后释放DataSet。
那么,在我的所有数据集和DataTable上调用dist()值得吗?
增编:
对于那些认为应该处理数据集的人:一般来说,处理的模式是使用using
或try..finally
,因为您希望保证Dispose()将被调用。
然而,对于一个集合来说,这变得非常丑陋。例如,如果其中一个释放()调用引发异常,您会做什么?你是否吞下它(这是“坏的”),这样你就可以继续处理下一个元素了吗?
或者,您是否建议我只调用myDataSet.Disposes(),而忘记如何在myDataSett.ables中处理DataTable?