C#/공부

C# Nullable

DoubleJK 2021. 9. 6. 16:25
728x90
using System;

namespace CSharp
{
    class Program
    {
        static void Main()
        {
            // Nullable -> Null + able

            int? num = null; // <- ?를 추가하면 null도 사용 가능

            num = 3;

            // int a = num; // <- Nullable형식을 in 형식으로 변환불가
            int a = num.Value; // <- Value로 값을 꺼내야함 num의 값이 비어있을 경우 크래시가 발생하기 때문에 null 체크를 해야함

            if (num != null) // <- num이 비어있지 않을 때
            {
                Console.WriteLine(a);
            }

            if (num.HasValue) // num이 값을 가지고 있을 때
            {
                Console.WriteLine(a);
            }

            int b = num ?? 0; // <- num이 null이면 설정한 값 (0)을 반환

            Monster monster = null;

            if (monster != null)
            {
                int monsterId = monster.Id;
            }
            else
            {
                monster = null;
            }

            int? id = monster?.Id; // <- 몬스터가 null 이면 id는 null, 아니면 id값
        }   

        static int Find()
        {
            return 0;
            // return null; // <- int같은 경우 null을 반환할 수 없음
        }
    }   

    class Monster
    {
        public int Id
        {
            get; set;
        }
    }
}
728x90

'C# > 공부' 카테고리의 다른 글

C# 선형 자료 구조  (0) 2021.09.09
C# Reflection  (0) 2021.09.06
C# Exception 예외처리  (0) 2021.09.06