6.0 · 버전 이력
C# 6.0
자주 적는 것들이 짧아졌습니다.
한눈에
무엇이 더해졌나
C# 6.0은 2015년에 나왔습니다. 큰 개념이 들어온 판은 아니지만, 날마다 적는 것들이 짧아진 판이라 지금 코드에서 가장 자주 보이는 문법이 여럿 여기서 나왔습니다.
- 보간 문자열 —
$"{name}님" - null 조건 연산자 —
?. - nameof — 이름을 글자로 꺼냅니다.
- 식 본문 멤버 —
=>로 잇습니다. - when 필터 — 조건이 맞을 때만 예외를 받습니다.
보간 문자열
값을 자리에 그대로 적기
그때까지는 번호를 매겨 두고 값을 차례로 넘겼습니다. 값이 둘 셋으로 늘면 번호와 값을 눈으로 맞춰 보아야 했고, 순서가 어긋나도 컴파일은 되기 때문에 실행해 보고서야 알았습니다.
C# 5 까지
string s = string.Format( "{0}님은 {1}살입니다.", name, age);
C# 6 부터
string s = $"{name}님은 {age}살입니다.";
중괄호 안에는 변수뿐 아니라 식도 그대로 적을 수 있습니다 —
$"{name.Length}글자" 처럼 쓰면 됩니다.
C# 1.9 문자열 처리 에서 자세히 다룹니다.
식 본문 멤버
한 줄짜리는 화살표로
몸통이 한 줄뿐인 메서드에도 중괄호와 return 을 적어야
했습니다. 화살표로 이으면 하는 일만 남습니다.
C# 5 까지
int Add(int a, int b) { return a + b; }
C# 6 부터
int Add(int a, int b) => a + b;
C# 1.8 메서드 기초 에서 자세히 다룹니다.
그 밖에
null 조건 연산자와 when
값이 없을(null) 수 있는 것을 통해 무언가 하려다 프로그램이
멈추는 일이 잦았습니다. ?. 는 앞이 비어 있으면 뒤를
실행하지 않고 넘어갑니다.
// name 이 null 이면 예외 대신 null 이 담깁니다 int? length = name?.Length;
예외를 받을 때도 조건을 걸 수 있게 되었습니다.
catch 뒤에 when 을 붙이면
맞는 것만 받고 나머지는 그대로 흘려보냅니다.
try { // ... } catch (Exception ex) when (ex.Message.Contains("타임아웃")) { Console.WriteLine("다시 시도해 보세요."); }
C# 1.10 예외 처리 기초 에서 예외의 기본을 다룹니다.
배경
- 이 판이 겨눈 것은 자주 적는 것을 짧게 하는 것입니다.
- 보간 문자열은 번호와 값을 눈으로 맞추던 일을 없앴습니다.
- 여기서 나온 문법들은 지금 코드에서 가장 자주 보입니다.