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
Referência
é (translation from VPE for Csharp Reference)
Operador de palavras-chave (translation from VPE for Csharp Reference)