Должен ли я Dispose () DataSet и DataTable?

DataSet и DataTable оба реализуют IDisposable, поэтому, согласно общепринятым рекомендациям, я должен вызывать их методы Dispose ().

Однако из того, что я прочитал, DataSet и DataTable на самом деле не имеют никаких неуправляемых ресурсов, поэтому Dispose () на самом деле ничего не делает.

Плюс я не могу просто использоватьusing(DataSet myDataSet...) потому что DataSet имеет коллекцию DataTables.

Поэтому, чтобы быть в безопасности, мне нужно было бы перебрать myDataSet.Tables, избавиться от каждого из DataTables, а затем избавиться от DataSet.

Итак, стоит ли вызывать Dispose () для всех моих DataSets и DataTables?

Приложение:

Для тех из вас, кто считает, что DataSet следует утилизировать: как правило, шаблон утилизации должен использоватьusing или жеtry..finallyпотому что вы хотите гарантировать, что Dispose () будет вызван.

Тем не менее, это становится ужасно быстро для коллекции. Например, что вы делаете, если один из вызовов Dispose () выдал исключение? Вы проглатываете это (что «плохо»), чтобы вы могли продолжить распоряжаться следующим элементом?

Или вы предлагаете мне просто вызвать myDataSet.Dispose () и забыть об удалении DataTables в myDataSet.Tables?

Ответы на вопрос(11)

Ваш ответ на вопрос