C#/ Using과 IDisposable

Using과 IDisposable

C# 에서 메모리는 가비지 컬렉터가 관리해 주지만, 그 외의 열린 파일, 스트림 같은 관리되지 않는 리소스들은 인식하지 못한다. 이런 리소스들은 프로그래머가 명시적으로 해제를 해줘야 하는데 그때 사용하는게 Dispose()이다.

가비지 컬렉터가 제어할 수 없는 리소스를 제어하는 클래스가 IDisposable을 상속 받아 Dispose()를 구현하고 using을 통해 사용하면 된다.

public class Book : IDisposable
{
    public void Dispose ()
    {
        // 리소스 해제
    }
}

public class Program
{
    public void ReadBook ()
    {
        using (Book novel = new Book())
        {
            // 실행문
        }
    }
}

위와 같이 코드를 구성하면 using 블록을 빠져나갈 때 프로그램이 Dispose()를 실행시켜줘서 리소스를 자동으로 해제하게 된다. using이 네임스페이스를 지정하는 것 외에 Dispose()를 실행시키는 것으로도 쓰이는 것이다.

[ssba]

The author

지성을 추구하는 디자이너/ suyeongpark@abyne.com

댓글 남기기