typeof (translation from VPE for Csharp Reference)

Usado para obter o System.Type objeto para um tipo. A typeof expressão possui o seguinte formato:

System.Type type = typeof(int);

Comentários

Para obter o tipo de time de execução de uma expressão, você pode usar o .NET estrutura método GetType, sistema autônomo no exemplo a seguir:

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

The typeof operador não pode ser sobrecarregado.

The typeof operador também pode ser usado em tipos genéricos abertos. Tipos com mais de um parâmetro de tipo devem ter o número apropriado de vírgulas na especificação.O exemplo a seguir mostra como determinar se o tipo de retorno de um método é um genérico IEnumerable<T>. Pressuponha que o método é uma instância de um tipo de MethodInfo:

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

Exemplo

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

Este exemplo utiliza o GetType método para determinar o tipo é usado para conter o resultado de um cálculo numérico. Isso depende dos requisitos de armazenamento do que o número resultante.

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

Especificação da linguagem C#

Para obter mais informações, consulte as seções a seguir no Especificação da linguagem C#:

  • O operador typeof 7.5.11

Consulte também

Conceitos

Guia de Programação C#

Referência

Palavras-chave C#

é (translation from VPE for Csharp Reference)

Operador de palavras-chave (translation from VPE for Csharp Reference)

Outros recursos

Referência C#