C#/C# 강좌

C# 강좌 - Nullable 타입

DragonTory 2023. 2. 19. 11:08
반응형

C# 강좌 - Nullables


변수가 값 또는 null 참조를 가질 수 있도록 nullable 형식이 도입되었습니다.

C#에서는 기본적으로 값 형식(예: int, double 및 bool)에 null 값을 할당할 수 없습니다.

Nullable 형식을 사용하면 값 형식을 Nullable<T> 구조로 래핑하여 값 형식에 null 값을 할당할 수 있습니다.

nullable 형식을 선언하려면 ? 물음표를 변수끝에 추가하면 됩니다.

예를 들어 nullable int를 선언하려면 다음과 같이 작성 하면 됩니다.

int? nullableInt = null;


또한 Nullable<T> 구조를 사용하여 nullable 형식을 선언할 수도 있습니다.

Nullable<int> nullableInt = null;

 
nullable 형식에 값이 있는지 또는 HasValue 속성을 사용하여 null인지 확인할 수 있습니다.

if (nullableInt.HasValue)
{
    int intValue = nullableInt.Value;
}
else
{
    // nullableInt is null
}


또한 null 병합 연산자(??)를 사용하여 null인 경우 nullable 형식에 기본값을 할당할 수 있습니다.

int nonNullableInt = nullableInt ?? 0; // nonNullableInt is 0 if nullableInt is null

  
GetValueOrDefault() 메서드를 사용하여 null 허용 유형의 값을 가져오거나 null인 경우 기본값을 가져올 수 있습니다.

int nonNullableInt = nullableInt.GetValueOrDefault(); // nonNullableInt is 0 if nullableInt is null
int nonNullableInt = nullableInt.GetValueOrDefault(10); // nonNullableInt is 10 if nullableInt is null

  
식에서 nullable 형식을 사용하는 경우 nullable 형식이 암시적으로 값 형식으로 변환되지 않으므로 Value 속성을 사용하여 기본 값을 가져와야 할 수 있습니다.

int? nullableInt = 10;
int intValue = nullableInt.Value; // intValue is 10

// compare
if( nullableInt != null )
{
}
else
{
}
반응형

'C# > C# 강좌' 카테고리의 다른 글

C# 강좌 - 부울형 ( Boolean, true false )  (0) 2023.02.19
C# 강좌 - 문자열 (String)  (1) 2023.02.19
C# 강좌 - 타입 캐스팅 (Type Casting)  (0) 2023.02.19
C# 강좌 - 연산자 (Operators)  (0) 2023.02.19
C# 강좌 - 상수 (Constants)  (0) 2023.02.19