암묵적/명시적 널 가능 변환
T에서 T?로의 변환은 암묵적이고 T?에서 T로의 변환은 명시적이다.
명시적 캐스팅은 null가능 객체의 value속성을 조회하는 것에 직접 대응된다. 따라서 만일 HashValue가 거짓이면 에러가 발생한다.
널 가능 값의 박싱과 언박싱
T?가 박싱된 경우, 힙에 있는 박싱된 값은 T?가 아니라 T를 담는다. 이러한 최적화가 가능한 것은, 박싱된 값은 이미 널을 표현할 수 있는 참조 형식이기 때문이다.
c#은 널 가능 형식을 as연산자로 언박싱하는 연산도 허용한다. (캐스팅 실패 시 null)
'프로그래밍언어 > C#' 카테고리의 다른 글
C#) 전처리기 지시자 (0) | 2020.04.12 |
---|---|
C#) 동적바인딩 / 정적바인딩 (0) | 2020.04.08 |
C#) 순차열 합성 / Nullable<T>구조체 (0) | 2020.04.01 |
C#) 반복자 (0) | 2020.03.31 |
C#) 열거자와 반복자 / IEnumerator, IEnumerator<T>,GetEnumerator (0) | 2020.03.30 |