파일 범위 네임스페이스
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줄이 줄어듭니다. - 두 번째는 우리가 실제로 작업하는 영역인 클래스가 한 단계 들여쓰기가 줄어듭니다.
처음 이 기능이 도입되었을 때, 뭘 이런 기능을 다 제공해라고 생각했었는데요. 계속 사용하다보니, 이제는 코드를 조금 더 간결하고 깔끔하게 정리할 수 있는 기능이라서 지금은 필수로 사용하고 있습니다.