본문 바로가기
C#/책 정리

C# 정리 ) GetType

2021. 11. 28.

C# 에서는 개발자가 class 로 타입을 정의하면 내부적으로 해당 class 타입을 가지고 있는

System.Type [인스턴스]를 보유하게 되고, 바로 그 [인스턴스] 를 가져올 수 있는 방법이 GetType 이다.

 

잘 이해가 안된다면 코드부터 보자.

using System;

namespace Project1
{
    class Computer
    {

    }
    class Notebook : Computer
    {

    }
    class Class1
    {
        public static void Main(String[] args)
        {
            Computer computer = new Computer();
            Type type = computer.GetType();

            Console.WriteLine(type.FullName);
            Console.WriteLine(type.IsClass);
            Console.WriteLine(type.IsArray);
        }
    }

}

출력 결과 : 

Project1.Computer
True                  
False                 

 

Computer computer = new Computer(); 로 [인스턴스] 를 만든다.

그 후 Type [인스턴스] type 에 computer 의 타입을 대입하고 출력한다.

 

ToString 메서드가 하위 클래스에서 재정의 되면 타입의 전체 이름이 아닌 값 자체를 문자열로 반환한다.

GetType 메서드는 그러한 클래스에 대해 타입의 전체 이름 값을 반환할 수 있는 수단을 제공한다.

using System;

namespace Project1
{
    class Class1
    {
        public static void Main(String[] args)
        {
            int n = 5;
            string txt = "text";

            Type intType = n.GetType();

            Console.WriteLine(intType + "\n" + txt.GetType().FullName);
        }
    }

}

출력 결과 : 

System.Int32 
System.String

 

GetType은 "클래스의 인스턴스" 로부터 Type을 구하는 반면, "클래스의 이름"에서 곧바로 Type을 구할 수 있다.

이때는 typeof 라는 예약어를 사용한다.

using System;

namespace Project1
{
    class Class1
    {
        public static void Main(String[] args)
        {
            Type type = typeof(double);
            Console.WriteLine(type.FullName);

            Console.WriteLine(typeof(System.Int16).FullName);
        }
    }
}

출력 결과 : 

System.Double
System.Int16   

 

GetType 메서드가 반환하는 Type 클래스의 사용법에 대해서는 이후에 [Reflection] 을 통해 다시 한번 다루겠다. 

'C# > 책 정리' 카테고리의 다른 글

C# 정리 ) GetHashCode  (0) 2021.11.29
C# 정리 ) Equals  (0) 2021.11.28
C# 정리 ) ToString  (0) 2021.11.28
C# 정리 ) System.Object  (0) 2021.11.28
C# 정리 ) as, is 연산자  (0) 2021.11.28

댓글