Chúng được sử dụng để nhập không gian tên (hoặc tạo bí danh cho không gian tên hoặc loại).
Chúng nằm ở đầu tệp, trước bất kỳ khai báo nào.
using System; using System.IO; using WinForms = global::System.Windows.Forms; using WinButton = WinForms::Button;
Câu lệnh using đảm bảo rằng Dispose () được gọi ngay cả khi một ngoại lệ xảy ra khi bạn đang tạo đối tượng và gọi phương thức, thuộc tính, v.v. Dispose () là một phương thức có trong giao diện IDisposable giúp triển khai Bộ sưu tập rác tùy chỉnh. Nói cách khác, nếu chúng ta đang thực hiện một số thao tác với cơ sở dữ liệu (Chèn, Cập nhật, Xóa) nhưng bằng cách nào đó xảy ra ngoại lệ, thì ở đây câu lệnh using sẽ tự động đóng kết nối. Không cần gọi phương thức Close () kết nối một cách rõ ràng.
Một yếu tố quan trọng khác là nó giúp ích cho Kết nối Pooling. Tổng hợp kết nối trong .NET giúp loại bỏ việc đóng kết nối cơ sở dữ liệu nhiều lần. Nó gửi đối tượng kết nối đến một nhóm để sử dụng trong tương lai (cuộc gọi cơ sở dữ liệu tiếp theo). Lần tiếp theo một kết nối cơ sở dữ liệu được gọi từ ứng dụng của bạn, nhóm kết nối sẽ tìm nạp các đối tượng có sẵn trong nhóm. Vì vậy, nó giúp cải thiện hiệu suất của ứng dụng. Vì vậy, khi chúng ta sử dụng câu lệnh using, bộ điều khiển sẽ tự động gửi đối tượng đến nhóm kết nối và không cần gọi các phương thức Close () và Dispose () một cách rõ ràng.
using (Stream input = File.OpenRead(filename)) { ... }
Ví dụ
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)); } }
Trong đoạn mã trên, chúng tôi không đóng bất kỳ kết nối nào, nó sẽ tự động đóng. Câu lệnh using sẽ tự động gọi conn.Close () do câu lệnh using
(sử dụng (SqlConnection conn =new SqlConnection (connString)) và tương tự cho đối tượng SqlDataReader. Ngoài ra, nếu có bất kỳ ngoại lệ nào xảy ra, nó sẽ tự động đóng kết nối.