.NET Core 3.x와 .NET Standard 2.1은 C# 8.0 문법을 지원하고, 많은 기능 기능을 도입하며, 새로운 문법을 추가합니다: 읽기 전용 멤버, 기본 인터페이스 메서드, 패턴 매칭 향상, 속성 패턴, 튜플 패턴, 위치 패턴, 스위치 표현식, 선언 사용, 정적 로컬 함수, 비동기 흐름, 인덱스 및 범위, 널 병합 할당 등. 이 글에서는 C# 8.0의 새로운 지식 포인트를 설명하겠습니다.
색인 및 범위
다음 .NET 타입은 인덱스와 범위를 모두 지원합니다: 배열, 문자열, 스팬, 그리고 읽기만능 스팬. 리스트는 인덱스를 지원하지만 범위는 지원하지 않습니다
예시 1: ID 번호를 받은 사람의 생일
예시 2: 문자열의 마지막 비트의 내용을 얻습니다
예시 3: 마지막 비트를 제거한다
스위치
식
속성 모드
튜플 패턴
위치 모드
일부 유형에는 특성을 이산 변수로 분해하는 Deconstruct 메서드가 포함되어 있습니다. Deconstruct 메서드에 접근할 수 있다면, Position Patterns를 사용해 객체의 속성을 확인하고 그 속성을 패턴에 사용할 수 있습니다. X와 Y에 대해 이산 변수를 생성하는 Deconstruct 메서드를 포함하는 다음 Point 클래스를 고려해 봅시다:
또한, 사분면을 나타내는 다양한 위치들의 다음 열거를 고려해 보십시오:
다음 방법은 위치 패턴을 사용하여 x와 y의 값을 추출합니다. 그 후 whence 절을 사용하여 해당 지점의 사분면을 결정합니다:
널 머지 할당
구성자 표현식
사용 명문
using 선언은 using 키워드가 앞에 붙는 변수 선언입니다. 컴파일러가 닫힌 범위 끝에서 처리할 변수를 선언하도록 지시합니다. 예를 들어, 텍스트 파일을 작성하는 코드는 다음과 같습니다:
앞서 예시에서는, 메서드의 올바른 괄호에 도달하면 파일이 처리됩니다. 이것이 선언된 파일의 범위 끝입니다. 앞서 언급한 코드는 고전적인 using 문장을 사용하는 다음 코드와 동등합니다:
앞서 예시에서는, using 문과 연관된 오른쪽 괄호가 도달하면 파일이 처리됩니다. 두 경우 모두 컴파일러는 Dispose() 호출을 생성합니다. using 문에 있는 표현식이 없으면 컴파일러가 오류를 생성합니다.
리소스
하이퍼링크 로그인이 보입니다.
하이퍼링크 로그인이 보입니다. |