Sdílet prostřednictvím


typeof (C#-Reference)

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<T>.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 naleznete 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#

(C# odkaz)

Operátor klíčová slova (C#-Reference)

System.Type

Koncepty

Příručka programování C#

Další zdroje

C#-Reference