Číst v angličtině

Sdílet prostřednictvím


Object.GetType Metoda

Definice

Type Získá aktuální instanci.

public Type GetType ();

Návraty

Type

Přesný typ modulu runtime aktuální instance.

Příklady

Následující příklad kódu ukazuje, že GetType vrací typ modulu runtime aktuální instance.

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

Poznámky

Protože System.Object je základní třída pro všechny typy v systému typů .NET, lze metodu GetType použít k vrácení Type objektů, které představují všechny typy .NET. .NET rozpozná následující pět kategorií typů:

Pro dva objekty x a y které mají stejné typy modulu runtime, Object.ReferenceEquals(x.GetType(),y.GetType()) vrátí true. Následující příklad používá metodu GetType s metodou ReferenceEquals k určení, zda jedna číselná hodnota je stejný typ jako dvě další číselné hodnoty.

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

Poznámka

Pokud chcete zjistit, jestli je objekt určitým typem, můžete použít klíčové slovo nebo konstruktor porovnání typů jazyka. Můžete například použít TypeOf…Is konstruktor v Visual Basic nebo is klíčové slovo v jazyce C#.

Metoda GetType je zděděna všemi typy, které jsou odvozeny z Object. To znamená, že kromě porovnávání vlastního jazyka můžete pomocí GetType metody určit typ konkrétního objektu, jak ukazuje následující příklad.

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 64-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.

Objekt Type zveřejňuje metadata přidružená ke třídě aktuálního Object.

Platí pro

Viz také