본문 바로가기

진리는어디에/C#

[C#] using 키워드 in 8.0

C#에서 using 키워드는 두 가지 의미로 사용 된다.

지시문으로써 using

다른 네임스페이스에 정의된 타입을 Import 하거나, 네임스페이스에 대한 별칭을 만들때 사용.

using System //코드 상단에 네임스페이스 정의
using Project = PC.MyCompany.Project; // 별칭

C# 6.0 부터 using static 문법이 추가 되었다. 스태틱 메소드를 클래스 이름을 명시하지 않고 호출하기 위해 사용 된다.

using static System.Console; // WriteLine("Hello World!")

...
WriteLine("Hello World!"); // Console이 생략 되었다

'using' statement

객체의 라이프 사이클을 제어하기 위해 사용된다. 코드 블록으로 표현 되며 해당 범위를 벗어나면 자동으로 Dispose 된다.

using System.IO;

...

FileStream fs1 = new FileStream("helloworld.txt", FileMode.CreateNew);
...
fs1.Dispose();

using (FileStream fs2 = new FileStream("helloworld.txt", FileMode.CreateNew))
{
    ...
} // fs2.Dispose()

하지만 사용하다 보니까 블록으로 표시해주는게 불편 했는지 C# 8.0 부터는 블록의 정의 없이 객체 앞에 using 키워드를 바로 붙여줄 수 있는 문법이 추가 되었다.

public void Foo()
{
    using FileStream fs2 = new FileStream("helloworld.txt", FileMode.CreateNew);
    ...
} // fs3.Dispose()

마치며

어려운 내용은 아니고 그냥 C# 8.0 부터는 저런 내용이 추가 되었다 정도만 알고 사용할 수 있으면 된다.

부록 1. 같이 읽으면 좋은 글

유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!