네임스페이스를 가져오거나 네임스페이스 또는 유형에 대한 별칭을 만드는 데 사용됩니다.
선언 전에 파일의 맨 위에 위치합니다.
using System; using System.IO; using WinForms = global::System.Windows.Forms; using WinButton = WinForms::Button;
using 문은 개체를 생성하고 메서드, 속성 등을 호출할 때 예외가 발생하더라도 Dispose()가 호출되도록 합니다. Dispose()는 사용자 지정 가비지 컬렉션을 구현하는 데 도움이 되는 IDisposable 인터페이스에 있는 메서드입니다. 즉, 일부 데이터베이스 작업(Insert, Update, Delete)을 수행하고 있지만 어떻게든 예외가 발생하면 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 문은 using 문으로 인해 자동으로 conn.Close()를 호출합니다.
((SqlConnection conn =new SqlConnection(connString) 사용) 및 SqlDataReader 개체에 대해 동일합니다. 또한 예외가 발생하면 연결이 자동으로 닫힙니다.