Nullable 타입은 T타입의 값과 null값을 가질 수 있게 하는 타입이다.
true/false 값을 갖는 bool타입에 true인지 false인지 모르겠다는 의미의 null값을 갖게 하고 싶으면 Nullable 혹은 bool?로 표기한다.
✍ 샘플코드
class Test
{
static void Main(string[] args)
{
Person personA = new Person();
personA.Name = "Amy";
personA.IsChristian = true;
personA.GetMarried = false;
personA.Age = 30;
Person personB = new Person();
personB.Name = "Brian";
personB.GetMarried = true;
Person personC = new Person();
personC.Name = "Cindy";
personC.IsChristian = false;
personC.Age = 0;
Person [] people = new Person[] { personA, personB, personC };
foreach(Person person in people)
{
Console.WriteLine(person.Name+" Info");
if (person.IsChristian.HasValue)
{
Console.WriteLine("IsChristian? "+person.IsChristian);
}
if (person.GetMarried.HasValue)
{
Console.WriteLine("GetMarried? "+person.GetMarried);
}
if (person.Age.HasValue)
{
Console.WriteLine("Age? " + person.Age);
}
}
}
}
class Person
{
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
Nullable<bool> _isChristian;
public Nullable<bool> IsChristian
{
get { return _isChristian; }
set { _isChristian = value; }
}
bool? _getMarried;
public bool? GetMarried
{
get { return _getMarried; }
set { _getMarried = value; }
}
int? _age;
public int? Age
{
get { return _age; }
set { _age = value; }
}
}
✅ 결과
Amy Info
IsChristian? True
GetMarried? False
Age? 30
Brian Info
GetMarried? True
Cindy Info
IsChristian? False
Age? 0