Exportar (0) Imprimir
Expandir todo

typeof (Referencia de C#)

Obtenga el objeto System.Type para un tipo. Una expresión typeof se presenta de la siguiente forma:

System.Type type = typeof(int);

Para obtener el tipo de una expresión en tiempo de ejecución, puede utilizar el método GetType de .NET Framework de la manera siguiente.

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

El operador typeof también se puede utilizar en tipos de genéricos abiertos. Los tipos con más de un parámetro de tipo deben tener el número adecuado de comas en la especificación. El operador typeof no se puede sobrecargar.

// cs_operator_typeof.cs
using System;
using System.Reflection;

public class SampleClass
{
   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:");
      MethodInfo[] methodInfo = t.GetMethods();

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

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

      foreach (MemberInfo mInfo in memberInfo)
         Console.WriteLine(mInfo.ToString());
   }
}

Resultados

Methods:
Void SampleMethod()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Members:
Void SampleMethod()
System.Type GetType()
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
Void .ctor()
Int32 sampleMember

En este ejemplo se utiliza el método GetType para determinar el tipo utilizado para contener el resultado de un cálculo numérico. Esto depende de los requisitos de almacenamiento del número resultante.

// cs_operator_typeof2.cs
using System;
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()
      );
   }
}

Resultados

Area = 28.2743338823081
The type is System.Double

Para obtener más información, vea las secciones siguientes de Especificación del lenguaje C#.

  • 7.5.11 El operador typeof

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft