c# - 예제 - nullable 뜻




C#nullable int를 int로 변환하는 방법 (10)

GetValueOrDefault()

객체의 값을 가져옵니다. null의 경우는, 디폴트 치의 int (0)를 돌려줍니다.

예:

v2= v1.GetValueOrDefault();

nullable intint 로 변환하려면 어떻게해야합니까? 다음과 같이 2 가지 유형의 int가 있다고 가정합니다.

int? v1;  
int v2; 

나는 v1 의 값을 v2 에 할당하려고합니다. v2 = v1; 오류가 발생합니다. v1v2 로 어떻게 변환합니까?


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;

v1v2 보다 더 큰 도메인 값을 가지고 있기 때문에 v1v2 사이의 간단한 변환은 불가능합니다. v1 이 보유 할 수있는 모든 것이 null 상태입니다. 변환하려면 null 상태를 맵핑하는 데 사용할 int 값을 명시 적으로 지정해야합니다. 가장 간단한 방법은 ?? 운영자

v2 = v1 ?? 0;  // maps null of v1 to 0

이것은 또한 긴 형태로 행해질 수있다.

int v2;
if (v1.HasValue) {
  v2 = v1.Value;
} else {
  v2 = 0;
}




nullable