Anna belly belly hard/C#

[C# 개념] 3.6 Nullable 형식

bibiana 각선행 2023. 6. 29. 15:42
반응형

- C# 컴파일러는 이 메모리 공간에 반드시 어떤 값이든 넣도록 강제합니다. 원하는 대로 해주지 않으면 C# 컴파일러는 실행 파일을 내주지 않습니다.

- 0이 아닌 비어있는 변수, 즉 null 상태인 변수 => 변수에게 할당된 메모리 공간을 비워둘 수 있도록 Nullable 형식

- Nullable 형식의 이름은 Null(비어 있는) + able(~될 수 있는). 즉, 비어있는 상태가 될수 있는 형식

- Nullable 형식을 사용할 수 있는 경우는 값 형식에 한해서 입니다. 참조 형식은 사용할수 없습니다.

 

- 모든 Nullable 형식은 HasValue 와 Value 두가지 속성을 가지고 있다.

- HasValue 속성 : 해당 변수가 값을 갖고 있는지 그렇지 않은지

- Value 속성 : 변수에 담겨 있는 값

- 만약 Value 속성을 이용하여 값을 꺼내려 시도하면 CLR은 InvalidOperation Exception 예외를 띄울것입니다.

- 따라서, Nullable 형식을 사용활 때는 HasValue 속성을 확인하거나 null과 같은지 비교하여 변수가 비어 있는지 확인하는 사전 검사가 필요하다.

using System;

namespace Nullable
{
    internal class MainAPP
    {
        static void Main(string[] args)
        {
            int? a = null;

            Console.WriteLine(a.HasValue);
            Console.WriteLine(a != null);

            a = 3;

            Console.WriteLine(a.HasValue);
            Console.WriteLine(a != null);  
            Console.WriteLine(a.Value); 
        }
    }
}

 

반응형