6.0 · 버전 이력

C# 6.0

자주 적는 것들이 짧아졌습니다.

2015 .NET Framework 4.6
한눈에

무엇이 더해졌나

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 예외 처리 기초 에서 예외의 기본을 다룹니다.

배경
  • 이 판이 겨눈 것은 자주 적는 것을 짧게 하는 것입니다.
  • 보간 문자열은 번호와 값을 눈으로 맞추던 일을 없앴습니다.
  • 여기서 나온 문법들은 지금 코드에서 가장 자주 보입니다.