[개념] Nullable 형식

| Nullable 형식

  • int형식의 변수를선어하면 4바이트의 메모리가 할당된다.
  • c#컴파일러는 이 메모리 공간에 반드시 어떤 값이든 넣도록 강제한다. 원하는대로 해주지 않으면 c#컴파일러는 실행 파일을 내주지않는다.
  • 하지만 프로그래밍하다보면 어떤 값도 가지지 않는 변수가필요할 때가 가끔 있다. 0이아닌 비어있는 변수, 즉 null 상태인 변수말이다.
  • 이럴때 변수에 할당된 메모리 공간을 비워둘 수 있도록 Nullable 형식을 사용하면 된다.
int? a = null;
float? b = null;

모두 null로 초기화 했는데 이것은 "해당 변수를 비운다"는 뜻의 문장이다.

int d;

이 코드는 문법적으로 문제가 없는 변수이다.
하지만 저 코드가 int d = null;과 같은 뜻을 갖는다고 하면 문제가 생긴다.
int 형식은 비워둘 수 없는(null값을 가질 수 없는) 데이터 형식이기 때문이다.

 

| HashValue와 Value 사용 예시

using System;
using static System.Console;

namespace ConsoleApp1
{
    internal class MainApp
    {
        static void Main(string[] args)
        {
            int? a = null;
            Console.WriteLine(a.HasValue); // a는 null이므로 False 출력

            a = 37;
            Console.WriteLine(a.HasValue); // a는 37을 갖고있으므로 True 출력
            Console.WriteLine(a.Value); // 37을 출력
        }
    }
}

 

Designed by JB FACTORY