Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Object.GetType-Methode: ()

 

Ruft den Type der aktuellen Instanz ab.

Namespace:   System
Assembly:  mscorlib (in mscorlib.dll)

public Type GetType()

Rückgabewert

Type: System.Type

Der genaue Laufzeittyp der aktuellen Instanz.

Da System.Object ist die Basisklasse für alle Typen in der .NET Framework-Typsystem, das GetType Methode kann verwendet werden, um zurückgeben Type Objekte, die alle .NET Framework-Typen darstellen. .NET Framework erkennt die folgenden fünf Typkategorien:

Für zwei Objekte x und y identische-Runtime-Typen, deren Object.ReferenceEquals(x.GetType(),y.GetType()) gibt true. Im folgenden Beispiel wird die GetType Methode mit der ReferenceEquals Methode, um zu bestimmen, ob eine numerische Wert als zwei numerische Werte desselben Typs ist.

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_noteHinweis

Um zu bestimmen, ob ein Objekt eines bestimmten Typs ist, verwenden Sie Ihre Sprache Typ Vergleich Schlüsselwort oder zu erstellen. Beispielsweise können Sie die TypeOf…Is in Visual Basic erstellen oder die is -Schlüsselwort in c#.

Die GetType Methode wird von allen Typen, die abgeleitet geerbt Object. Dies bedeutet, dass zusätzlich zur Verwendung Ihrer eigenen Sprache Vergleich-Schlüsselwort, das Sie verwenden können die GetType Methode, um den Typ eines bestimmten Objekts zu bestimmen, wie im folgenden Beispiel gezeigt.

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.

Die Type Objekt macht die Klasse des aktuellen zugeordnete Metadaten Object.

Im folgenden Codebeispiel wird veranschaulicht, dass GetType gibt den Laufzeittyp der aktuellen Instanz zurück.

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 

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: