반응형
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을 수강하고 정리한 글입니다.
반응형
'유니티 공부 > 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 |
댓글