본문 바로가기
Programming/C#

[C#] int, float, bool,struct를 Null 로 초기화방법 - System.Nullable

by 타임박스 2022. 5. 3.
반응형


✔ Value Type 을 Null로 초기화하기

struct 멤버변수를 Null로 초기화하기

System.Nullable<T>



 

일반적으로 int, float, double, short 등등 (숫자로 표현되는것)은 모두 Null의 값을 가질 수 없다.

(struct도 포함)

int k = 1은 되지만 int k = null 을 선언하면 초기화 오류가 나타난다.

그래서 많은 사람들이 특정 초기값이라고 생각하며 int k = -999 이런식으로 사용하며

if(k == -999) 일때는 초기값이라고 판단하도록 했었다.

지금은 Nullable을 사용하여 null처리가 가능해졌다.

사용방법은 Type 뒤에 ?를 넣으면 된다.

 

● Value Type 을 Null로 초기화하여 사용방법

//Value Type 사용법
int? k = null;
bool? b = null;

if (k.HasValue)
{
    //값을 가지고 있다면 (null이 아니면)
}
else
{
    //null이면
}

//배열 사용법
int?[] arr = new int?[10];
if (arr[0].HasValue)
{
    //값을 가지고 있다면 (null이 아니면)
}
else
{
    //null이면
}

 

●struct에서 Nullable 사용방법

public struct struct_Test
{
    public int? k;
    public int? j;
}

static void Main(string[] args)
{
    struct_Test test1 = new struct_Test();
            
    if (test1.k.HasValue)
    {
        //값을 가지고 있다면 (null이 아니면)
    }
    else
    {
        //null이면
    }
}

 

 

HasValue를 확인하지 않고 값이 Null일 경우에 초기화를 하고 싶다면 아래와 같이 사용할 수도 있다.

●Null 체크 후 데이터 넣기

int? a= null;

//a 값이 Null 이면 -1로 초기화
int result = a ?? -1;

Console.WriteLine(result);

 

 

감사합니다.

반응형

댓글