프로그래밍언어/C#
C#) 암묵적/명시적 널 가능 변환 / 널 가능 값의 박싱과 언박싱
HJH0825
2020. 4. 6. 09:42
암묵적/명시적 널 가능 변환
T에서 T?로의 변환은 암묵적이고 T?에서 T로의 변환은 명시적이다.
명시적 캐스팅은 null가능 객체의 value속성을 조회하는 것에 직접 대응된다. 따라서 만일 HashValue가 거짓이면 에러가 발생한다.
널 가능 값의 박싱과 언박싱
T?가 박싱된 경우, 힙에 있는 박싱된 값은 T?가 아니라 T를 담는다. 이러한 최적화가 가능한 것은, 박싱된 값은 이미 널을 표현할 수 있는 참조 형식이기 때문이다.
c#은 널 가능 형식을 as연산자로 언박싱하는 연산도 허용한다. (캐스팅 실패 시 null)