Sdílet prostřednictvím


typeof (Referenční dokumentace jazyka C#)

K získání System.Type pro typ objektu.A typeof výraz má následující podobu:

System.Type type = typeof(int);

Poznámky

Chcete-li získat typ spuštění výrazu použít.NET Framework metodu GetType, jako v následujícím příkladu:

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

typeof Operátor nemůže být přetížena.

typeof Operátor lze také otevřít obecné typy.Typy s více než jeden parametr typu musí mít odpovídající počet čárek ve specifikaci.Následující příklad ukazuje, jak lze zjistit, zda je typ vrácení metody obecný IEnumerable.Předpokládejme, že je metoda instance typu MethodInfo:

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

Příklad

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

   static void Main()
   {
      Type t = typeof(ExampleClass);
      // Alternatively, you could use 
      // ExampleClass obj = new ExampleClass(); 
      // 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:
    Void SampleMethod()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    System.Type GetType()
    Members:
    Void SampleMethod()
    System.String ToString()
    Boolean Equals(System.Object)
    Int32 GetHashCode()
    System.Type GetType()
    Void .ctor()
    Int32 sampleMember
*/

V tomto příkladu GetType metoda k určení typu, který obsahuje číselný výpočet výsledku.To závisí na požadavky na skladování výsledné číslo.

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
*/

Specifikace jazyka C#

Další informace najdete v tématu Specifikace jazyka C#. Specifikace jazyka je úplným a rozhodujícím zdrojem pro syntaxi a použití jazyka C#.

Viz také

Referenční dokumentace

Klíčová slova jazyka C#

is (Referenční dokumentace jazyka C#)

Klíčová slova operátorů (Referenční dokumentace jazyka C#)

Type

Koncepty

Průvodce programováním v C#

Další zdroje

Referenční dokumentace jazyka C#