[C# 2.0] nullable 형식

eunjin lee·2022년 9월 12일
0

C# 9.0 프로그래밍

목록 보기
24/50

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

0개의 댓글