- PR -

オブジェクト破棄を保証する using でのCloseの必要性?

1
投稿者投稿内容
rmmug
大ベテラン
会議室デビュー日: 2006/03/07
投稿数: 116
投稿日時: 2007-03-10 10:40
オブジェクトの破棄を保証するusingの使用についてです。
下記のように、Connection等の場合、Closeを敢えて指定する必要はありますか?
必要最小限のシンプルなコーディングしたいと思いますが、
Disposeが保証される為、Closeも保証されると考えて、
"MyConnection.Close()"を省略してもよいのでしょうか。

using (System.Data.SqlClient.SqlConnection MyConnection = new System.Data.SqlClient.SqlConnection("...省略...")) {
MyConnection.Open();
try {
//
} finally {
// MyConnection を閉じる
if (MyConnection != null) {
MyConnection.Close();
}
}
}
Hongliang
ぬし
会議室デビュー日: 2004/12/25
投稿数: 576
投稿日時: 2007-03-10 11:40
Dispose の機能を持つメソッドをクラスによって Close などの名前を付けても良い、とガイドラインにあります。
が、所詮ガイドラインであり保証されているわけではありません。ひょっとしたらそれぞれ別機能を提供していて順次呼び出す必要があるかも知れません。

ですので、クラスごとにきちんとリファレンスを引きましょう。
SqlConnection.Close メソッド (System.Data.SqlClient)
rmmug
大ベテラン
会議室デビュー日: 2006/03/07
投稿数: 116
投稿日時: 2007-03-10 20:42
Hongliang様、有難うございます。
教えて頂いたリンク先で確認致しました。
了解です。
まず、調べてから質問ですね・・・
1

スキルアップ/キャリアアップ(JOB@IT)