이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

Object.GetType 메서드 ()

 

현재 인스턴스의 Type을 가져옵니다.

네임스페이스:   System
어셈블리:  mscorlib(mscorlib.dll에 있음)

public Type GetType()

반환 값

Type: System.Type

현재 인스턴스의 정확한 런타임 형식입니다.

때문에 System.Object 는.NET Framework 형식 시스템의 모든 형식에 대 한 기본 클래스는 GetType 메서드를 사용 하 여 반환할 수 있습니다 Type 모든.NET Framework 형식을 나타내는 개체입니다. .NET Framework에는 다음과 같은 다섯 가지 범주의 형식 인식합니다.

두 개체에 대 한 xy 동일한 런타임 형식이 있는 Object.ReferenceEquals(x.GetType(),y.GetType()) 반환 true합니다. 다음 예제에서는 GetType 메서드는 ReferenceEquals 하나의 숫자 값이 동일한 두 개의 다른 숫자 값 형식이 있는지 여부를 결정 하는 메서드.

using System;

public class Example
{
   public static void Main()
   {
      int n1 = 12;
      int n2 = 82;
      long n3 = 12;

      Console.WriteLine("n1 and n2 are the same type: {0}",
                        Object.ReferenceEquals(n1.GetType(), n2.GetType()));
      Console.WriteLine("n1 and n3 are the same type: {0}",
                        Object.ReferenceEquals(n1.GetType(), n3.GetType()));
   }
}
// The example displays the following output:
//       n1 and n2 are the same type: True
//       n1 and n3 are the same type: False      
System_CAPS_note참고

개체는 특정 형식 인지를 확인 하려면 해당 언어의 형식을 비교 키워드를 사용 하거나 생성 수 있습니다. 예를 들어, 사용할 수는 TypeOf…Is Visual Basic의 생성 또는 is C# 키워드입니다.

GetType 메서드에서 파생 되는 모든 형식에서 상속 되 Object합니다. 즉, 즉, 사용자 고유의 언어의 비교 키워드를 사용 하는 것 외에도 사용할 수 있습니다는 GetType 메서드를 다음 예제와 같이 특정 개체의 유형을 결정 합니다.

using System;

public class Example
{
   public static void Main()
   {
      object[] values = { (int) 12, (long) 10653, (byte) 12, (sbyte) -5,
                         16.3, "string" }; 
      foreach (var value in values) {
         Type t = value.GetType();
         if (t.Equals(typeof(byte)))
            Console.WriteLine("{0} is an unsigned byte.", value);
         else if (t.Equals(typeof(sbyte)))
            Console.WriteLine("{0} is a signed byte.", value);
         else if (t.Equals(typeof(int)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(long)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(double)))
            Console.WriteLine("{0} is a double-precision floating point.", 
                              value);
         else
            Console.WriteLine("'{0}' is another data type.", value);
      }
   }
}
// The example displays the following output:
//    12 is a 32-bit integer.
//    10653 is a 32-bit integer.
//    12 is an unsigned byte.
//    -5 is a signed byte.
//    16.3 is a double-precision floating point.
//    'string' is another data type.

Type 현재 클래스와 연결 된 메타 데이터를 노출 하는 개체 Object합니다.

다음 코드 예제에서는 것을 보여 줍니다 GetType 현재 인스턴스의 런타임 형식을 반환 합니다.

using System;

public class MyBaseClass {
}

public class MyDerivedClass: MyBaseClass {
}

public class Test 
{
   public static void Main() 
   {
      MyBaseClass myBase = new MyBaseClass();
      MyDerivedClass myDerived = new MyDerivedClass();
      object o = myDerived;
      MyBaseClass b = myDerived;

      Console.WriteLine("mybase: Type is {0}", myBase.GetType());
      Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
      Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
      Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
   }
}
// The example displays the following output:
//    mybase: Type is MyBaseClass
//    myDerived: Type is MyDerivedClass
//    object o = myDerived: Type is MyDerivedClass
//    MyBaseClass b = myDerived: Type is MyDerivedClass 

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: