파일 범위 네임스페이스

  • 3 minutes to read

Convert to file-scoped namespace

C# 10의 편의 구문 중에는 파일 범위 네임스페이스로 변환 기능이 있습니다. 영어로는 Convert to file-scoped namespace인데요.

C# 1.0부터 9.0까지는 네임스페이스는 무조건 중괄호 열고 닫고를 가지고 있어야 합니다. 하지만, 거의 대부분의 개발자들이 하나의 cs 파일에서는 하나의 네임스페이스만 사용하는 경향이 있습니다. 그래서 들여쓰기(Indent)를 줄여주는 목적 등으로 네임스페이스의 중괄호 열고 닫고를 줄여주는 기능을 C# 10에서 제공하게 되었습니다.

네임스페이스 사용의 기본은 다음과 같이 중괄호로 묶어주는 형태입니다.

namespace X.Y.Z
{
    // usings

    // types
}
// usings

namespace X.Y.Z
{
    // types
}

그런데, 파일 범위 네임스페이스를 사용하면 다음과 같이 클래스와 같은 형식에만 집중할 수 있는 장점을 가집니다. namespace 키워드를 사용하지 않는 다른 프로그래밍 언어 사용자들은 이 방식이 훨씬 익숙합니다.

namespace X.Y.Z;

using System;

class X
{
}

Visual Studio에서 파일 범위 네임스페이스로 변환하기

사용 방법은 다음 순서와 같습니다.

(1) 기본 네임스페이스는 하나 이상의 클래스들을 중괄호로 묶어서 관리합니다.

네임스페이스

(2) Visual Studio에서 namespace 영역을 선택하면 [Ctrl+.] 단축키로 열 수 있는 드라이버(노랑 전구) 아이콘이 나타납니다. 이를 클릭하면 파일 범위 네임스페이스로 변환 메뉴가 나타납니다.

파일 범위 네임스페이스로 변환

(3) Convert to file-scoped namespace 기능을 사용하면 네임스페이스는 세미콜론 기호와 함께 한 줄로 끝나고 클래스를 묶었던 중괄호 쌍은 사라집니다.

파일 범위 네임스페이스

마무리

C# 9.0 이하를 사용하는 환경에서는 이 기능을 적용하지 못합니다. 그렇지만, C# 10.0 이상이라면 이 기능을 사용해서 2가지의 장점을 가집니다.

  • 첫 번째는 중괄호(열고 닫고)를 지우기에 2줄이 줄어듭니다.
  • 두 번째는 우리가 실제로 작업하는 영역인 클래스가 한 단계 들여쓰기가 줄어듭니다.

처음 이 기능이 도입되었을 때, 뭘 이런 기능을 다 제공해라고 생각했었는데요. 계속 사용하다보니, 이제는 코드를 조금 더 간결하고 깔끔하게 정리할 수 있는 기능이라서 지금은 필수로 사용하고 있습니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com