8. 리터럴에 대한 표현 방법 개선
숫자가 클때 가독성이 떨어질때가 많은에 아래처럼 숫자사이에 _ 를 붙여 사용이 가능하다.
int num2 = 10_000_000; // 천단위로 끊어서 볼수 있어 가독성이 좋아진다.
모든 숫자 데이터에 적용이 가능하기때문에 16진수 2진수 표현에도 사용이 가능하다.
9. 패턴 매칭
1) 연산자의 패턴매칭
예전에는 is, as 를 구분하여 사용했지만
List<string> list = obj as List<string>;
list?.ForEach((e) => Console.WriteLine(e));
7.0 부터는 is 가 as 역할을 수행할수 있아 아래처럼 사용이 가능하다.
if (obj is List<string> list)
{
list.ForEach((e) => Console.WriteLine(e));
}
var 패턴의 경우 사용예시이다 var 패턴은 반드시 변수명이 필요하다. 무조건 is 결과가 true 이므로 의미가 없다.
{
Console.WriteLine(elem);
}
2) switch/case 문의 패턴 매칭
아래처럼 상수 패턴을 사용할수 있고 타입도 사용하면서 바로 변수에 대입하여 사용할수도 있다.
foreach (object obj in objTestList)
{
switch (item)
{
case 100: // 상수 패턴
break;
case null: // 상수 패턴
break;
case DateTime dt: // 타입 패턴 (값 형식) – 필요 없다면 dt 변수 생략 가능
break;
case ArrayList arr: // 타입 패턴 (참조 형식) – 필요 없다면 arr 변수 생략 가능
break;
case var element: // Var 패턴 (이렇게 사용하면 default와 동일)
break;
}
}
또한 switch 에서 when 예약어 기능을 사용할수 있어 아래처럼 사용이 가능하다.
switch (checkNum)
{
case int num when checkNum > 300: // int 타입이고 그 값이 300보다 큰 경우
break;
default:
break;
}
위와같이 쓰면 case 의 순서가 중요해진다.
상위의 case 조건에서 이미 만족한다면 그 절의 코드가 실행되고 그 하위의 case 조건 에 대한 평가는 무시된다.
'C# > Winform' 카테고리의 다른 글
Visual Studio 2017 사용 시 환경 셋팅 (0) | 2018.01.06 |
---|---|
system.windows.interactivity 관련 에러 -Visual Studio 2017 (0) | 2018.01.06 |
C# 7.0 기억해야 할 변경점- 1 (0) | 2017.12.29 |
(C#) 특수문자 제거 정규식 (0) | 2017.12.27 |
(C#) Double/float 연산 결과가 이상할 때 (부동소수점 연산) (0) | 2017.12.22 |