C# Nullable

선비Sunbei·2023년 1월 10일
0

C#

목록 보기
13/18
post-thumbnail

Nullable

일반적인 다른 언어에서는 값 형태의 정수, 소수, 구조체 등의 경우 null을 가질 수 없다. 예를 들어 int i는 변수 i에 null값을 넣을 수 없다.
하지만 C#에서는 int에 null값도 넣을 수 있게끔 새로운 문법을 만들었다.
사용방법은 다음과 같다.

자료형? '변수명';

using System;

namespace Study28
{
    class Program
    {
        static void Main(string[] args)
        {
            int? i = null;

            if(i == null)
                Console.WriteLine("i는 null 입니다."); // o
            else
                Console.WriteLine("i는 null이 아닙니다.");
        }
    }
}

개인적으로 마음에 들었던 문법이다.
변수 값을 할당했는지, 안했는지를 확인하기 위해서 변수를 2개써야 했던 경험이 있었다. 변수에 null로 해놓고 값 할당 시 일반적으로 사용하면 좋을 것 같다.

using System;

namespace Study28
{

    class TMPClass
    {
        public int value = 30;
    }

    class Program
    {
        static void Main(string[] args)
        {
            TMPClass tmpClass = new TMPClass();
            TMPClass tmpClass2 = null;

            if(tmpClass?.value != null)
                Console.WriteLine("tmpClass Value : {0}",tmpClass.value);
            else
                Console.WriteLine("tmpClass is NULL");

            if (tmpClass2?.value != null)
                Console.WriteLine("tmpClass2 Value : {0}", tmpClass2.value);
            else
                Console.WriteLine("tmpClass2 is NULL");

        }
    }
}

또 C#에서 추가된 것으로 아래와 같다.

(tmpClass==null)?null:tmpClass.value;
// 동일한 뜻이다.
tmpClass?.Value

0개의 댓글