每new一个对象,就会开辟一块资源。using(我们new的对象){……},“}”处自动释放占用的资源(即调用Dispose方法)。等效于fianlly中调用Dispose方法。
Dispose内部会自动判断有无close,如果有,会自动先close,然后Dispose。
所以using可以不用再写close、dispose。
try……catch语句,catch可以抛出异常,让我们直接看到。
所以想要看到异常,用try……catch。
想要手动释放资源,用try……catch……finally,在finally中dispose。
想要自动释放资源,用using。
using(Sqlconnection con = new SqlConnection())
{
//代码执行块,末尾处省去conn.Close()、conn.Dispose()
}
close与dispose区别:
conn.Open()
conn.Close()
conn.Open()//这是可以的
-----------------------
conn.Open()
conn.Close()
conn.Dispose()
conn.Open() //出错
可见dispose就是将conn毁掉,不能再用