Nullabel type 이 란?

Nullable 타입은 null 값을 할당할 수 있는 타입을 말한다.

Nullable struct로 변수를 생성하면 이 변수에 null 값을 할당할 수 있게 된다.

예를 들어 null 값은 정수에 할당할 수 없지만, Nullable로 생성된 변수는 가능하다.

뿐만 아니라, null 값은 정수형과 같은 value type에 할당할 수 없지만, List<>와 같은 reference type에 할당할 수 있다

Null의 정의와 필요성

Null 값은 ‘결측값’으로 정의할 수 있다. 그렇다면, null 값은 어디에 필요할까?

예를 들어, 5명의 사람의 평균 신장을 구하는 프로그램을 작성한다고 생각해보자.

이 중에서 3명의 평균 신장은 알 수 있지만, 2명은 알 수없어 비워둔다고 했을 때, 알 수 없는 이 2명의 신장을 어떻게 저장할 수 있을까?

흔히 드는 생각으로 0 으로 저장하고 평균 신장을 구한다면 어떻게 될까?

image-20220706204508272

이렇게 결측값, 계산에 포함되어서는 안되는 값으로 기능해야할 때 null 값을 사용하면 좋다.

[Nullable Type - 예시 코드]

using System;

namespace NuallableType
{
	internal class Program
	{
		static void Main(string[] args)
		{
			// int Height = null; // value type 에 null 값을 할당할 수 없음, 에러
			int? Height = null;
			Nullable<int> Height2 = null;
			Nullable<int> Height3 = new Nullable<int>();

			if (Height.HasValue)
			{
				Console.WriteLine($"Height is {Height.Value}");
			}
			else
			{
				Console.WriteLine($"Height is null");
			}

			int number = Height.Value; // 정수에 null value를 할당할 수 있음
		}
	}
}
Height is null

태그: ,

카테고리:

업데이트:

댓글남기기