typeof (C#-Referenz)

Aktualisiert: November 2007

Wird verwendet, um das System.Type-Objekt für einen Typ zu erhalten. Der typeof-Ausdruck nimmt folgende Form an:

System.Type type = typeof(int);

Hinweise

Um den Laufzeittyp eines Ausdrucks abzurufen, kann die GetType-Methode von .NET Framework verwendet werden, wie im folgenden Beispiel gezeigt:

int i = 0;
System.Type type = i.GetType();

Der Operator typeof kann nicht überladen werden.

Der Operator typeof kann auch bei offenen generischen Typen verwendet werden. Typen mit mehr als einem Parameter müssen die entsprechende Anzahl Kommas in der Spezifikation aufweisen. Im folgenden Beispiel wird gezeigt, wie ermittelt wird, ob der Rückgabetyp einer Methode ein generischer IEnumerable<T>-Typ ist. Angenommen, diese Methode ist eine Instanz eines MethodInfo-Typs:

string s = method.ReturnType.GetInterface
    (typeof(System.Collections.Generic.IEnumerable<>).FullName

Beispiel

public class SampleClass2
{
   public int sampleMember;
   public void SampleMethod() {}

   static void Main()
   {
      Type t = typeof(SampleClass);
      // Alternatively, you could use
      // SampleClass obj = new SampleClass();
      // Type t = obj.GetType();

      Console.WriteLine("Methods:");
      System.Reflection.MethodInfo[] methodInfo = t.GetMethods();

      foreach (System.Reflection.MethodInfo mInfo in methodInfo)
         Console.WriteLine(mInfo.ToString());

      Console.WriteLine("Members:");
      System.Reflection.MemberInfo[] memberInfo = t.GetMembers();

      foreach (System.Reflection.MemberInfo mInfo in memberInfo)
         Console.WriteLine(mInfo.ToString());
   }
}
/*
 Output:
    Methods:
    System.Type GetType()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    Members:
    System.Type GetType()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    Void .ctor()
    Void .ctor(Int32, System.String)
    System.String name
    Int32 id
*/

In diesem Beispiel wird die GetType-Methode verwendet, um den Typ zu ermitteln, der das Ergebnis der numerischen Berechnung enthält. Dies hängt von den Speicheranforderungen der resultierenden Zahl ab.

class GetTypeTest
{
    static void Main()
    {
        int radius = 3;
        Console.WriteLine("Area = {0}", radius * radius * Math.PI);
        Console.WriteLine("The type is {0}",
                          (radius * radius * Math.PI).GetType()
        );
    }
}
/*
Output:
Area = 28.2743338823081
The type is System.Double
*/

C#-Programmiersprachenspezifikation

Weitere Informationen finden Sie in den folgenden Abschnitten von C#-Programmiersprachenspezifikation:

  • 7.5.11 Der Operator "typeof"

Siehe auch

Konzepte

C#-Programmierhandbuch

Referenz

C#-Schlüsselwörter

is (C#-Referenz)

Operatorschlüsselwörter (C#-Referenz)

Weitere Ressourcen

C#-Referenz