10.0 · 버전 이력
C# 10.0
파일 머리에 되풀이되던 것들이 사라졌습니다.
한눈에
무엇이 더해졌나
C# 10.0은 .NET 6과 함께 2021년 11월에 나왔습니다. 앞선 9.0이 프로그램의 시작 자리를 가볍게 했다면, 이 판은 파일 머리에서 되풀이되던 것들을 걷어냅니다.
- global using — 한 번 적어 프로젝트 전체에서 씁니다.
- 파일 범위 네임스페이스 — 중괄호로 감싸지 않아 들여쓰기가 한 단계 줄어듭니다.
- record struct — 값 형식으로 된 record 입니다.
global using
using 을 파일마다 적지 않아도 됩니다
System 이나
System.Collections.Generic 처럼 거의 모든 파일이 쓰는
것들이 있습니다. 그때까지는 파일을 새로 만들 때마다 같은 줄을 다시 적어야 했습니다.
global 을 붙이면 한 번만 적어도 프로젝트 전체에
걸립니다.
// 아무 파일에나 한 번 적어 두면 됩니다 global using System; global using System.Collections.Generic;
.NET 6부터 프로젝트 설정에 ImplicitUsings 가 켜져 나오는데,
이것이 켜져 있으면 자주 쓰는 묶음을 빌드가 알아서 넣어 줍니다.
새 콘솔 프로젝트에서 using 을 한 줄도 적지 않았는데
Console 이 그냥 쓰이는 것이 그 때문입니다.
C# 1.2 Hello World와 프로그램 구조 에서 자세히 다룹니다.
파일 범위 네임스페이스
들여쓰기 한 단계 줄이기
네임스페이스는 거의 언제나 파일 하나에 하나뿐인데, 그것을 위해 파일 전체가 중괄호 안으로 들어가 한 단계씩 밀려 있었습니다. 세미콜론으로 끝내면 그 단계가 사라집니다.
C# 9 까지
namespace MyApp { class Program { static void Main() { Console.WriteLine("Hello"); } } }
C# 10 부터
namespace MyApp; class Program { static void Main() { Console.WriteLine("Hello"); } }
한 파일에 네임스페이스가 둘 이상 필요하다면 예전 방식(중괄호)을 그대로 쓰면 됩니다. 두 방식을 한 파일에 섞을 수는 없습니다.
배경
- 이 판이 겨눈 것은 파일 머리를 비우는 것입니다.
- 덕분에 새 파일을 열었을 때 맨 위에 보이는 것이 곧 할 일이 되었습니다.
- 오래된 코드에서 중괄호로 감싼 네임스페이스를 만나더라도 잘못된 것이 아닙니다.