본문 바로가기
유니티 공부/C# 문법

C# 문법 - Nullable type

by 코딩하는 돼징 2023. 4. 20.
반응형

Nullable -> Null + able (null이 가능한)

 

1. 선언 및 할당 방법

Nullable<T> 변수명
T? 변수명
int? number = null;

2. 속성

01 HasValue

내부 형식의 올바른 값이 있는지 여부를 나타내는 값을 가져온다

public bool HasValue { get; }

현재 개체에 값이 있으면 true, 없으면 fasle

if(number.HasValue)
{

}

02 Value

현재 Nullable의 값을 가져온다

public T Value { get; }
int? number = null;
int a = number.Value;

Hasvalue 속성이 fasle이면 예외가 throw된다.


int? number = 3;
int a = number.Value;

Hasvalue 속성이 true이면 개체에 값이 할당된다.


3. null인지 아닌지 확인하고 값을 가져오는 법

01 != null 사용

if(number != null)
{
	int a = number.Value;          
}

02 HasValue 사용

if(number.HasValue)
{
    int a = number.Value;
}

4. ??

위에 3줄을 한 줄로 줄이는 법

만약 number가 null이 아니라면 number 값을 넣어주고 null이라면 뒤에 초기값을 넣어준다.

int b = number ?? 0;

와 같은 코드이다.

int c = (number != null) ? number.Value : 0;

01 number가 null 인 경우

int? number = null;
int b = number ?? 0;
Console.WriteLine(b);


02 number가 null이 아닌 경우

int? number = 5;
int b = number ?? 0;
Console.WriteLine(b);


5. 사용 예시

class Pig
{
    public int id { get; set; }
}
static void Main(string[] args)
{
    Pig pig = null;
    if(pig != null)
    {
        int pigId = pig.id;
    }
    int? id = pig?.id;
}

int? id = pig?.id;

풀어쓰면 아래와 같은 코드이다.

if(pig == null)
{
    id = null;
}
else
{
    id = pig.id;
}

 

 

 

 

 

본 게시글은 MMORPG Part1을 수강하고 정리한 글입니다.

https://www.inflearn.com/course/%EC%9C%A0%EB%8B%88%ED%8B%B0-mmorpg-%EA%B0%9C%EB%B0%9C-part1/dashboard

반응형

'유니티 공부 > C# 문법' 카테고리의 다른 글

C# 문법 - 상속에서 override vs new  (0) 2023.05.09
C# 문법 - enum(열거형)  (0) 2023.05.09
C# 문법 - Reflection, Attribute  (0) 2023.04.20
C# 문법 - exception  (0) 2023.04.19
C# 문법 - Lambda, Func, Action  (0) 2023.04.19

댓글