C#.netでリソースを解放する2つの方法
Javaでストリームを使用したり、接続を確立したりすると、最後にcloseメソッドが呼び出され、手動でnullに設定されたり、nullに設定されていない場合は、ゴミプロセッサが自動的にnullに設定されますが、C#ではリソースを解放する方法が2つ用意されています.
使用するusing
C#でusingを使用すると、usingの実行が完了すると、disposeメソッドが自動的に呼び出されます.つまり、リソースが解放されます.
try_の使用catch_finally
実際、usingはtry_に相当します.finally、ここではcatchが正しいだけで、これを使うメリットは考えられますが、例えば物事を使うときはcatchの中でロールバックし、usingを使うとだめです.
使用するusing
C#でusingを使用すると、usingの実行が完了すると、disposeメソッドが自動的に呼び出されます.つまり、リソースが解放されます.
using(SqlConnection con = new SqlConnection(connData)){
// ...
}
try_の使用catch_finally
実際、usingはtry_に相当します.finally、ここではcatchが正しいだけで、これを使うメリットは考えられますが、例えば物事を使うときはcatchの中でロールバックし、usingを使うとだめです.
SqlConnection conn = null;
MysqlTransation tran = null;
try{
conn = new SqlConnetion(connData);
con.Open();//
tran = conn.BeginConnsaction();
//...
tran.commit();
}catch{
tran.rollback();//
}finally{
//..
tran.dispose();
conn.close()
conn.dispose();
}