답변:
아니요, nullable은 구조체입니다. Nullable 구조체에는 두 가지 값이 있습니다.
int
for int?
, DateTime
for DateTime?
등)HasValue
이 속성입니다.)데이터 유형의 값을 설정하면 구조체 HasValue
가 true로 변경 됩니다.
에서 nullable 형식 (C # 프로그래밍 가이드) :
널 입력 가능 유형은 System.Nullable 구조체의 인스턴스입니다.
과
널 입력 가능 유형은 널 값을 지정할 수있는 값 유형 변수를 나타냅니다. 참조 유형에 따라 널 입력 가능 유형을 작성할 수 없습니다. 참조 유형은 이미 널값을 지원합니다.
따라서 참조 유형이 아닙니다.
널 입력 가능 유형은 값 유형도 아니고 참조 유형도 아닙니다. 그것들은 값 유형과 비슷하지만 참조 유형의 몇 가지 속성이 있습니다.
당연히 nullable 유형은로 설정 될 수 있습니다 null
. 또한 nullable 형식은 일반 struct
제약 조건을 충족 할 수 없습니다 . 당신이 가진 nullable 형식 상자 때 또한, HasValue
동일을 false
, 당신이 얻을 null
대신 박스 nullable 형식의 포인터를 (비슷한 상황이 언 박싱 존재).
이러한 속성은 nullable 형식을 값이 아닌 형식으로 만들지 만 참조 형식도 아닙니다. 이들은 고유 한 널 입력 가능 유형입니다.
널 입력 가능 유형은 참조 유형이 될 수 없습니다.