호우동의 개발일지

Today :

article thumbnail

썸네일


Nullable이란?

Nullable은 Null + able의 합성어로 C#에서 제공하는 새로운 문법이다.

Nullable은 변수형 타입을 의미하는데,
변수형을 Nullable로 만들면 값으로 Null을 가지지 못하는 변수형도 Null 값을 가질 수 있다.

 

 


사용 방법


? 키워드

사용 방법은 간단하다.

public static void Main(string[] args)
{
    //선언하는 방법
    int? ex1 = null;
    bool? ex2 = null;
    float? ex3 = 3f;

    // 값 수정
    ex1 = 3;
    ex2 = true;
    ex3 = 4.0f;
    
    // 값 대입
    int a = ex1.Value;


    //값 호출하는 방법
    Console.WriteLine($"ex1 :{ex1.Value}");
    Console.WriteLine($"ex2 :{ex2.Value}");
    Console.WriteLine($"ex3 :{ex3.Value}");

}

선언하는 방법은 변수타입 뒤에?를 붙이는 방법이 끝이다.
그러면 해당 자료형을 가지는 Nullable 타입이 생성되는 것이다.

초기화할 때나 값을 넣을 때는 변수명 가지고 수정해도 되지만,
Nullable 타입이 아닌 다른 변수에 대입할 때나 호출할 때는 Value 키워드를 사용해줘야 한다.

 


?? 키워드

다음은 Nullable과 함께 쓰이는 '??' 키워드이다.

이 키워드의 의미는
해당 Nullable 변수가 Null일 경우 해당 값을 넣으시오 라는 의미이다.

코드로 바로 살펴보자.

public static void Main(string[] args)
{
    int? ex1 = null;
    int? ex2 = 5;

    int a = ex1 ?? 2; // ex1이 null 이면 2를 a에 저장
    int b = ex2 ?? 2; // ex2가 null 이면 2를 b에 저장 

    Console.WriteLine($"a :{a}");
    Console.WriteLine($"b :{b}");

}

<출력>

a와 b의 결과
a와 b

Nullable로 선언된 ex1과 ex2를 '??' 키워드를 통해 각각 변수 a, b에 담았다.

null 값이 담겨있던 ex1에 의해 a는 2가 되었고,
5 값이 담겨있던 ex2는 null이 아니었으므로 b는 그대로 5가 됐다.

이렇게 '??' 키워드를 사용할 수 있다.