SSISO Community

시소당

[C#] using

사용자 응용 프로그램에서 만들어지는 대부분의 개체는 가비지 컬렉터에 의해 메모리 관리가 되지만, 관리되지 않는 리소스가 존재한다.


# 관리되지 않는 리소스

1. 파일

2. 창(windows)

3. 네트워크 연결 또는 데이터베이서 연결

등의 운영체제 리소스를 래핑하는 개체


이러한 개체는 명확한 해제가 이루어져야 하므로 삭제 패턴을 구현해야한다.

--> IDisposable 객체를 상속받아 Dispose()를 구현


IDisposable 객체를 편리하게 사용하기위해 C#에서는 using문을 제공한다.

using 문 안에서 객체의 선언, 인스턴스화 해야한다.


이 스코프 내에서 예외가 발생하더라도 Dispose()를 호출하게 된다.

1
2
3
4
5
using (Font font1 = new Font("Arial", 10.0f))
{
byte charset = font1.GdiCharSet;
}
cs


기존의 try~finally 문을 간소화 시켜준다.


try{

//생성

}

finally{

//해제

}

2105 view

4.0 stars