DataSet和DataTable都实现了IDisposable,所以,通过传统的最佳实践,我应该调用他们的Dispose()方法。 然而,从我目前阅读的内容来看,DataSet和DataTable实际上并没有任何非托pipe资源,所以Dispose()实际上并没有太多的function。 另外,我不能只使用using(DataSet myDataSet…)因为DataSet有一个DataTables的集合。 所以,为了安全起见,我需要遍历myDataSet.Tables,处理每个DataTable,然后处理DataSet。 那么,在我所有的DataSets和DataTables上调用Dispose()是否值得麻烦? 附录: 对于那些认为DataSet应该被处置的人来说:一般来说,处置模式是使用using或try..finally ,因为你要保证Dispose()将被调用。 然而,这对于一个集合来说真的很难实现。 例如,如果对Dispose()的调用之一抛出exception,你会怎么做? 你是否吞下它(这是“坏”),以便继续处理下一个元素? 或者,你是否build议我只是调用myDataSet.Dispose(),而忘记在myDataSet.Tables中configurationDataTables?