자바 언어만 다뤘던 나에게는 놀랍게도 Null 값을 가진 변수를 선언하고 초기화할 수 있다.
옛날 게임 프로그래머들은 -1 값을 주어서 아예 퀘스트 조차 접근하지 않은 유저들을 명시하기도 했다고 하는데
퀘스트야 그렇다쳐도 -1 이 유의미한 값들에서는 또 다른 서로의 약속된 변수가 있어야 하므로 어려움이 있었다고 한다.
그럴때 사용하기 유용한게 Nullable 변수라고 하는데
아래 주석을 보면 이해가 쉽게 갈듯하다
class Nullable
{
static void Main(string[] args)
{
int? nowQuest = null; // 현재 진행중인 퀘스트
QuestInfo[] questList;
QuestInfo q0 = questList[0];
QuestInfo q1 = questList[1];
Console.WriteLine(q0.name);
Console.WriteLine(questList[nowQuest]._name);
// if (nowQuest == -1 ) 옛날 프로그래머들이 아무런 퀘스트가 진행되지 않았을 때 사용한 구형 방식
if(nowQuest.HasValue == false)
{
// 아무런 퀘스트가 진행되지 않았을때
}
bool? b = null; // 원래 bool은 True or False만 가능하지만 이렇게 Null값을 넣어서 초기화해줄 수 있다.
Console.WriteLine(b);
int? a = null;
Console.WriteLine(a.HasValue); // a가 값을 갖고 있는가? 출력값 = false
Console.WriteLine(a != null); // a가 값을 갖고 있는가? 위의 문제랑 같은 문제임. 출력값 = false
a = 3;
Console.WriteLine(a.HasValue); // True
Console.WriteLine(a != null); // True
Console.WriteLine(a.Value); // 값이 있을때만 사용할 수 있는 Value 속성. 결과값 = 3
}
}
'유니티 프로그래밍 > C# 프로그래밍' 카테고리의 다른 글
C# 문자열 변환 및 반환 하는 법 (0) | 2022.06.18 |
---|---|
윈도우 모든 포맷을 UTF-8 기본값으로 바꾸기 (0) | 2022.06.16 |
Visual Studio 프로그래밍 환경 세팅 (0) | 2022.06.13 |
C# 열거형 상수 (0) | 2022.06.10 |
C# 형 변환 (Type Conversion) (0) | 2022.06.08 |