가능한 중복 : 나는 "안전"nullable 형식에서 값을 얻기 위해 다음과 같은 형태를 모두 사용하는 코드베이스에서 일하고 있어요
Which is preferred: Nullable<>.HasValue or Nullable<> == null?Nullable에서 안전하고 올바르게 값을 가져 오겠습니까?
.
if (foo != null) {
value = (int)foo;
}
if (foo.HasValue) {
value = foo.Value;
}
내가 두 번째 양식을 선호하지만, 처음 만들 수있는 특정 상황 (또는 두 번째는 그 문제에 대해) 확실히 선호있다 : (? int)를 예를 들어,
foo
경우 널 (NULL) 다른? 이 명 회원들과 구조체 -
예, 컴파일러가 spec (버전 3.0 섹션 7.9.9, "Equality operators and null")을 준수하면 컴파일러에서 Value 속성을 사용한다는 것이 보장됩니다. – phoog
@phoog : 잘 잡으세요. C# 4 사양에서는 7.10.9 절입니다. 편집 할 것입니다. –