Section 7.2: Null fall-through 와 chaining
Null 병합 (coalescing) 연산자 사용 시 좌측 피연산자는 nullable 타입이어야 하며, 우측 피연산자는 nullable 일 수도, 아닐 수도 있다. 최종 결과값의 타입은 자동으로 적절하게 결정될 것이다.
우측 피 연산자가 Non-nullable 인 경우
int? a = null;
int b = 3;
var output = a ?? b;
var type = output.GetType();
Console.WriteLine($"Output Type :{type}"); Console.WriteLine($"Output value :{output}");
출력 결과:
Type :System.Int32
value :3
우측 피 연산자가 Nullable 인 경우
int? a = null;
int? b = null;
var output = a ?? b;
결과값의 타입은 int?
가 될 것이며 그 값은 b
, 혹은 null
이 될 것이다.
다중 병합 (Multiple Coalescing)
병합 (Coalescing) 연산은 연결되어 사용될 수 있다:
int? a = null;
int? b = null;
int c = 3;
var output = a ?? b ?? c;
var type = output.GetType(); Console.WriteLine($"Type :{type}"); Console.WriteLine($"value :{output}");
출력 결과:
Type :System.Int32 value :3
Null 조건부 Chaining
Null 병합 (coalescing) 연산자는 null 조건부 연산자와 연계하여 객체의 property 에 대한 보다 안전한 접근을 제공할 수 있다.
object o = null;
var output = o?.ToString() ?? "Default Value";
출력 결과:
Type :System.String value :Default Value
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
7.4: 기존 객체를 사용하거나 없는 경우 새로 생성하기 (0) | 2020.12.04 |
---|---|
7.3: Null 병합 연산자를 메소드 호출 결과에 사용하기 (0) | 2020.12.04 |
7.1: Null 병합 (coalescing) 연산자의 기본 사용법 (0) | 2020.12.01 |
6.4: IEqualityComparer 에서의 Equals 와 GetHashCode (0) | 2020.11.25 |
6.3: 사용자 정의 타입에 대해 Equals 와 GetHashCode 재정의하기 (0) | 2020.11.25 |