4

このusingステートメントは、IDisposable に含まれる Dispose メソッドを自動的に実行し、データベース関連のクラス (SqlConnection、SqlCommand など) がこのインターフェイスを実装します。

この種のクラスを使用するusing場合、オブジェクトの作成にステートメントを使用して、操作の終了時にリソースが解放されるようにする必要がありますか?

たとえば、何らかの理由で SqlConnection、SqlCommand、SqlDataAdapter、および DataTable を使用する必要があるため、このコードを以下に記述します。これが最善の方法であるか、または try の finally 句に Dispose() を配置する必要があります。 ..キャッチ...ついに?

using (SqlConnection con = new SqlConnection(Properties.Settings.Default.ConnectionString))
using (SqlCommand cmd = new SqlCommand())
using (SqlDataAdapter da = new SqlDataAdapter())
using (DataTable dt = new DataTable())
{
    // Do something...
}
4

3 に答える 3

6

あなたの持ち方は正しいです。Dispose() メソッドは自動的に Close() を呼び出します。これは、IDisposable を実装するすべてのものに当てはまるとは限りませんが、DB 関連のクラスには当てはまります。

于 2013-06-15T13:25:32.533 に答える