2009-07-29 5 views
7

변수 자체를 호출하는 대신 null 값 유형에 .Value 멤버를 사용하고 싶습니다.Nullable 변수 유형 - .value member

예 :

bool? b = 참;

왜 b를 사용하는 대신 b.Value를 사용하여 값을 얻습니까? .Value 호출이 추가하는 이점 또는 기능은 무엇입니까?

답변

13

value 속성은 읽기 전용이며 실제 값 유형을 반환합니다. value 속성은 결코 null 일 수 없습니다.

nullable이 값을 반환 할 것으로 예상되는 경우 .HasValue를 확인한 다음 값을 참조하십시오. 당신이 일반 부울에 Null 허용의 값을 할당 할 경우 예를 들어, 당신은이 값의 참조해야한다 : 그러나

bool? nullableBool = null; 

if (nullableBool.HasValue) 
{ 
    bool realBool = nullableBool.Value; 
} 

, 다음 하지 않습니다 컴파일 :

bool? nullableBool = true; 
bool realBool = nullableBool; // Won't work 
+0

좋아요! 그건 의미가 있습니다. 고마워요 :)) – Valerie

3

.Value는 bool이 아닌 bool을 반환합니까? nullable 타입을 기대하지 않는 함수의 파라미터로 사용할 수 있습니다.

1

유일한 차이점은 두 가지 유형입니다. 당신은 bool이 있다면? 그러면 null 허용 유형의 bool입니다.

당신은 당신이 실제로 부울 아닌 부울을 반환하고 b.Value를 호출 할 경우?.

미묘하지만 개체의 nullable 버전이 필요하면 .Value 속성을 사용하십시오. 를 이용해서 방법/기본 유형의 속성을 사용하려는 경우 내가

+0

오타 . 더러운 = 미묘. –

1

는 나에게는 너무 값이 아니다. bool에 실제로 적용되지 않습니다. 나를 DateTime로 설명하자

DateTime? d; 
int month = d.Value.Month; 

당신은 날짜 시간 때문에, D에서 직접 월 속성에 액세스 할 수 없습니다? 이 속성이 없습니다.

2

유용한 재산 "HasValue는"있는 그대로