c# - 예제 - nullable 뜻
C#nullable int를 int로 변환하는 방법 (10)
GetValueOrDefault()
객체의 값을 가져옵니다. null의 경우는, 디폴트 치의 int (0)를 돌려줍니다.
예:
v2= v1.GetValueOrDefault();
nullable int
를 int
로 변환하려면 어떻게해야합니까? 다음과 같이 2 가지 유형의 int가 있다고 가정합니다.
int? v1;
int v2;
나는 v1
의 값을 v2
에 할당하려고합니다. v2 = v1;
오류가 발생합니다. v1
을 v2
로 어떻게 변환합니까?
int int 변환은 다음과 같이 수행 할 수 있습니다.
v2=(int)v1;
너 할 수있어.
v2 = v1.HasValue ? v1.Value : v2;
늘어나는만큼 최선의 해결책은 GetValueOrDefault()
메서드를 사용하는 것입니다.
v2 = v1.GetValueOrDefault();
이처럼,
if(v1.HasValue)
v2=v1.Value
주어진 유형의 기본값이 수용 가능한 결과 일 경우 :
if (v1.HasValue)
v2 = v1.GetValueOrDefault();
결과가 정의되지 않은 경우 다른 기본값을 원하면 다음을 수행하십시오.
v2 = v1.GetValueOrDefault(255); // or any valid value for int in place of 255
메서드가 실패했는지 여부에 관계없이 반환 된 값만 원하면 다음을 수행하십시오.
v2 = v1.GetValueOrDefault();
.NET 4.7.2 .: GetValueOrDefault()
는 검사하지 않고 필드 값을 반환합니다.
필요한 건 ..
v2= v1.GetValueOrDefault();
할당을 위해 Value 속성을 사용할 수 있습니다.
v2 = v1.Value;
v1
에 값이 있음을 알고 있으면 Value
속성을 사용할 수 있습니다.
v2 = v1.Value;
GetValueOrDefault
메서드를 사용하면 값이 있으면 값을 지정하고, 그렇지 않으면 형식의 기본값 또는 지정한 기본값을 할당합니다.
v2 = v1.GetValueOrDefault(); // assigns zero if v1 has no value
v2 = v1.GetValueOrDefault(-1); // assigns -1 if v1 has no value
HasValue
속성을 사용하여 v1
에 값이 있는지 확인할 수 있습니다.
if (v1.HasValue) {
v2 = v1.Value;
}
GetValueOrDefault(T)
메서드에 대한 언어 지원도 있습니다.
v2 = v1 ?? -1;
v1
은 v2
보다 더 큰 도메인 값을 가지고 있기 때문에 v1
과 v2
사이의 간단한 변환은 불가능합니다. v1
이 보유 할 수있는 모든 것이 null
상태입니다. 변환하려면 null
상태를 맵핑하는 데 사용할 int
값을 명시 적으로 지정해야합니다. 가장 간단한 방법은 ??
운영자
v2 = v1 ?? 0; // maps null of v1 to 0
이것은 또한 긴 형태로 행해질 수있다.
int v2;
if (v1.HasValue) {
v2 = v1.Value;
} else {
v2 = 0;
}