C#6은 MS가 7월 20일에 업그레이드 한 C#임



nameof

nameof(클래스명 이나 함수명); 처럼 쓰면 리턴값이 문자열로 나옴

그외 아무기능 없음. 그냥 로그처리 할 때 가끔 씀



문자열 보간

모름. 안씀. 노관심.



널 조건연산자

int? result = foo?.length;

저기서 foo를 클래스라고 보고 이게 null이면 컴파일러가 "너 이새퀴 foo에 아무값도 없는데 멤버를 찾아? 빼애액" 하면서 뻗지 않고 그냥 null을 넘겨줌. 어사인 안된 클래스 확인 하는데 씀



객체 이니셜라이저

foo 가 클래스고 맴버에 age 가 있을때 new foo { age = 18}; 이렇게 중괄호로 초기화가 됨

리스트같은 콜렉션을 만들고 그냥 한줄로 초기화 할 때 씀

난 잘 안씀 가끔 있는거 알고 쓰면 편할 때 있음



예외 필터

try catch 문에서 캐치에다가 조건식을 달수 있음

try { ...} catch (fooException e) if (e.age == 18) { ...} 이렇게 특정한 예외에 특정한 경우만 처리하게 만들수 있음

활용도는 그닥. 모든 예외를 다 받게 해놨는데 알기 쉽게 구분 할때는 쓸만 한 듯

그리고 개중요한 게 또 있는데 캐치하고 파이날리문에서 await 문을 쓸수 있게 됐음

5까지 이걸 못써서 코드가 레알 개 지저분했는데 내가 시발 이거 때문에 6 업그레이드 했다 시발



자동 프로퍼티 이니셜라이저

foo가 클래스고 age 프로퍼티가 있을때 public int age { get; set; } = 18; 이렇게 겟셋 쓰면서 바로 18로 초기화 할 수 있음

따로 초기화 안해줘도 되서 그냥 편함



정적 유징

using문은 네임스페이스만 지정할 수 있었는데 using static 이 추가되서 정적 클래스도 지정 할수 있게됨

뭐가 좋냐면 using static System.Console; 같이 선언하면 그냥 WriteLine("foo"); 으로 메소드를 바로 쓸수 있음

클래스명 까지 안써도 되서 편함




결론: 편함