C#으로 이해하는 자료구조 전자책
C# 8 : using 선언

using 선언은 using 키워드 뒤에 오는 변수 선언으로서, using 뒤에 있는 변수가 using을 둘러싼 범위를 벗어날 경우 Dispose 하도록 컴파일러에게 지시하게 된다. 기존의 using문을 사용할 경우 괄호 {...} 를 표시해야 했는데, using 블럭 전체를 들여쓰기 해야 하는 불편함이 있었다. using 선언은 (별도의 괄호를 메서드 내부에 사용하지 않는 한) 통상 메서드가 끝날 때 Dispose() 를 자동 호출하게 해 준다. 물론 경우에 따라 긴 메서드 안에 특정 부분에서만 using을 사용하고 빨리 Dispose() 해 주어야 한다면, 기존의 using문을 사용할 수 있다.

아래 예제에서 GetDataCS8() 메서드는 C# 8.0의 using 선언을 예시한 것으로 StreamReader 객체 변수인 reader는 메서드 끝에서 reader.Dispose()를 호출하게 된다. GetData() 메서드는 기존에 사용했던 using 문을 예를 든 것으로 이 메서드에서 reader.Dispose()는 메서드 끝이 아닌 using 블럭이 끝나는 부분에서 호출되게 된다.


예제

// C# 8.0
private void GetDataCS8()
{ 
    using var reader = new StreamReader("src.txt");
    string data = reader.ReadToEnd();
    Debug.WriteLine(data);

// 여기서 Dispose() 호출됨
}  

// C# 모든 버전
private void GetData()
{
    using (var reader = new StreamReader("src.txt"))
    { 
        string data = reader.ReadToEnd();
        Debug.WriteLine(data);
    }  // 여기서 Dispose() 호출됨

    // ...
    Debug.WriteLine("...");
}




본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.





Comment 의견/코멘트 쓰기
이메일
 *정확한 이메일이 아닐 경우 삭제될 수 있습니다
의견/코멘트
좌측의 3자리 문자들을 입력해 주십시오





아티클 모바일 링크
C# 스터디 소셜미디어