一:using語句
SqlConnection conn = new SqlConnection(connString);
try
{
conn.Open();
//……
}
finally
{
conn.Close();
}
在代碼中,finally塊中調用Close()方法釋放連接,確保即使沒有異常發生,連接也能被釋放。除了使用try-catch-finally語句外,也可以通過使用using語句盡快釋放資源
語法:
using(SqlConnection conn=new SqlConnection(connString))
{
//數據庫操作代碼
}
二 using 語句的兩個作用:
①:作為關鍵字,using可以導入命名空間
②:作為C#語句,using可以釋放對象占用的內存資源
注:
using可以讓程序員不手動關閉連接對象
using釋放的是托管資源還是非托管資源?
解析:
非托管,C#應用托管到.NET Framework.但是他可以釋放非托管資源。
三 using語句原理
using可以釋放對象,但并非所有的對象前都可以使用using來限制
原因:
using可以主動釋放的對象都需要實現IDisable接口。
為什么出了using所在的{},會自動回收對象。
原因是當我們將要出{},系統自動調用了Dispose()方法。
而在DISpose方法中是這么實現的
注:Dispose方法會自動調用Close()
要想讓一個類型可以通過using管理,該類型或者父類必須實現了IDisposable接口。
using(SqlConnection con=new SqlConnection)
{
//本質上自動調用了Dispose方法
}
close()和dispose()區別?
解析:
close()只是關閉連接,但是通道沒有銷毀,dispose()不僅把連接給關閉了,而且把通道也給銷毀了。
文章列表