대마법사(진) 2025. 1. 15. 22:03

오늘의 노래 : https://www.youtube.com/watch?v=oRg-7iku6Ok

Default

  • Default 연산자는 특정 데이터 형식의 기본값을 제공한다.
  • 값형식, 참조형식 모두 사용가능하다.



internal class Class2
{
    private List<int> list;
    static void Main(string[] args)
    {
        int a = 10;
        string? b = "Test";

        a = default;
        b = default;
        Console.WriteLine("a Default = " + a);
        Console.WriteLine("B Default = " + b);

    }
}

결과

a Default = 0
B Default =

Typeof(T)

해당 객체의 타입을 얻는다.
테스트를 해보면...

namespace Test{

  internal class Class2
  {
      private List<int> list;
      static void Main(string[] args)
      {
          Console.WriteLine(typeof(int));
          Console.WriteLine(typeof(string));
          Console.WriteLine(typeof(List<>));
          Console.WriteLine(typeof(List<int>));
          Console.WriteLine(typeof(People);
      }
  }
  public class People
  {
      public string Name { get; set; }
      public int Age { get; set; }
  }
}

결과

System.Int32
System.String
System.Collections.Generic.List`1[T]
System.Collections.Generic.List`1[System.Int32]
Test.People

Namespace.ClassName 형식으로 반환된다.

특징 typeof default
역할 컴파일 타임에 특정 형식의 메타데이터를 가져옵니다. 특정 데이터 형식의 기본값을 반환합니다.
반환 값 형식의 메타데이터 객체(Type) 데이터 형식의 기본값 (예: 0, false, null)
사용 목적 런타임에 형식을 확인하거나 리플렉션 작업에 사용 변수 또는 데이터 초기화 시 안전하게 기본값 제공
사용되는 문맥 형식 관련 작업 (리플렉션, 비교, 제네릭 제한 등) 값 초기화, 조건부 처리, 제네릭에서 기본값 반환