它們用於匯入命名空間(或為命名空間或類型建立別名)。
它們位於文件頂部、任何聲明之前。
using System; using System.IO; using WinForms = global::System.Windows.Forms; using WinButton = WinForms::Button;
using 語句可以確保即使在建立物件、呼叫方法、屬性等時發生異常,Dispose() 也會被呼叫。 Dispose() 是 IDisposable 介面中提供的一種方法,有助於實作自訂垃圾收集。換句話說,如果我們正在執行一些資料庫操作(插入、更新、刪除),但由於某種原因發生了異常,那麼這裡的 using 語句會自動關閉連線。這裡不需要明確呼叫連接 Close() 方法。
另一個重要因素是它有助於連接池。 .NET 中的連線池有助於消除多次關閉資料庫連線的情況。它將連接物件傳送到池以供將來使用(下一次資料庫呼叫)。下次從應用程式呼叫資料庫連線時,連線池將取得池中可用的物件。因此它有助於提高應用程式的效能。因此,當我們使用using語句時,控制器會自動將物件傳送到連接池,而無需明確呼叫Close()和Dispose()方法。
using (Stream input = File.OpenRead(filename)) { ... }
string connString = "Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"; using (SqlConnection conn = new SqlConnection(connString)) { SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = "SELECT CustomerId, CompanyName FROM Customers"; conn.Open(); using (SqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) Console.WriteLine("{0}\t{1}", dr.GetString(0), dr.GetString(1)); } }
在上面的程式碼中我們沒有關閉任何連接,它會自動關閉。由於使用語句,using 語句將自動呼叫conn.Close()
(using (SqlConnection conn = new SqlConnection(connString)) ,對於SqlDataReader 物件也是如此。而且如果發生任何例外情況將自動關閉連線。
以上是C# 中的連結池是什麼以及如何實現?的詳細內容。更多資訊請關注PHP中文網其他相關文章!