Null 안전 연산자
현대 C# 프로그래밍에서 NullReferenceException 예외를 방지하는 연산자이다. 안전 연산자를 조합하면 수십 줄의 조건부를 단 한 줄로 줄일 수 있으며, 이는 가독성 뿐만 아니라 실수 가능성을 차단한다.
-
널 조건부 연산자(?., ?[]): 객체가 null이 아닐 때만 멤버에 접근한다.
-
널 병합 연산자(??): 왼쪽 피연산자가 null이면 오른쪽 값을 반환한다.
-
널 병합 할당 연산자(??=): 변수가 null일 때만 특정 값을 할당한다.
패턴 매칭
C# 언어를 단순한 객체지향 언어에서 함수형 언어의 장점까지 갖춘 도구로 만든 핵심 기능이다.
-
is 식: 단순이 타입을 묻는 것을 넘어, 타입 캐스팅과 변수 선언을 동시에 처리할 수 있다.
-
switch 식: 기존의 장황한 switch 문을 대체하는 간결한 문법이다.
// 현대적인 switch 식의 예
string priority = task switch {
{ IsCompleted: true } => "Done",
{ Importance: > 9 } => "Urgent",
null => "Unknown",
_ => "Normal"
};
-
속성 패턴: 객체의 내부 속성 값을 직접 검사하여 로직을 전개한다.
-
관계 패턴 및 논리 패턴: and, or, not 키워드와 >, < 연산자를 패턴 매칭 안에서 자유롭게 사용한다.
비트 연산과 플래그
비트 연산(Bitwise)과 플래그(Flags)는 고성능 시스템 프로그래밍이나 WinForm의 상태 관리를 위한 로우 레벨 영역이다.
-
[Flags]속성과 비트 연산: 여러 상태를 하나의 정수형 변수에 담고 &,, ^ 연산자로 조합하는 기법을 다룬다.