C#_Using문

Today Jeeho Learned·2022년 11월 28일
0

C#

목록 보기
13/17
post-thumbnail
post-custom-banner

INTRO

UDP통신을 구현 예제를 하다 Using문을 사용하게 되었다. 무엇인지 모르고 사용했었는데, 다시 금 정리해보고자 한다.

1. 지시문

상단에 using을 사용하여 import 외부 dll파일을 사용 할 수 있다. 일반적으로 프로그램 맨 위쪽에 using ~~을 추가하는 부분이다.

2. 문장

using문을 사용하여 Disposable 객체의 Dispose()를 자동으로 호출해서 메모리 관리를 편하게 할 수 있다. (Dispose() 메서드는 객체가 사용중인 메모리와 리소스를 해제하는 메소드이다.)

using (var form = new Form1())
{
    form.ShowDialog();
}

위와 같은 방법으로 사용할 수 있는데, using 블록이 끝날 때, 혹은 블록이 끝나기 전에 예외가 발생했으나 예외를 처리하지 않았을 때 using 키워드로 생성된 객체(위 코드에서는 Form1 form)의 Dispose()메서드를 호출하여 메모리를 해제해준다.

즉 위코드는 내부적으로 아래 코드로 변한되며, 완전히 같은 동작을 한다.

var form = new Form1();
try
{
    form.ShowDialog();
}
finally
{
    form.Dispose();
}

using 문은 개체의 사용이 끝남과 동시에 Dispose() 메서드를 호출해주는 구문이기 때문에 IDisposable 인터페이스를 구현하는 클래스의 개체에 대해서만 사용이 가능하다.

StreamReader와 StreamWriter로 파일을 읽고 쓴 후에는 반드시 Close() 메서드를 호출해서 스트림을 닫아주는 것이 좋은데, using 구문을 통해 사용하게 되면 Dispose() 메서드를 자동으로 호출해주므로 Close()를 깜빡하고 호출하지 않는 실수, 일일히 호출해야 하는 번거로움을 줄일 수 있다.

profile
기록해야 (살아)남는다 !
post-custom-banner

0개의 댓글