GetType Método
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Object.GetType (Método) ()

 

Obtiene el Type de la instancia actual.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

public Type GetType()

Valor devuelto

Type: System.Type

El tipo en tiempo de ejecución exacto de la instancia actual.

Porque System.Object es la clase base para todos los tipos en el sistema de tipos de .NET Framework, el GetType método puede utilizarse para devolver Type objetos que representan todos los tipos de .NET Framework. .NET Framework reconoce las cinco categorías de tipos siguientes:

Para dos objetos x y y que tienen tipos idénticos en tiempo de ejecución, Object.ReferenceEquals(x.GetType(),y.GetType()) devuelve true. En el ejemplo siguiente se usa el GetType método con el ReferenceEquals método para determinar si un valor numérico es el mismo tipo que los otros dos valores numéricos.

int n1 = 12;
int n2 = 82;
long n3 = 12;

Console.WriteLine("n1 and n2 are the same type: {0}",
                  Object.ReferenceEquals(n1.GetType(), n2.GetType()));
Console.WriteLine("n1 and n3 are the same type: {0}",
                  Object.ReferenceEquals(n1.GetType(), n3.GetType()));
// The example displays the following output:
//       n1 and n2 are the same type: True
//       n1 and n3 are the same type: False      
System_CAPS_noteNota

Para determinar si un objeto es un tipo específico, puede utilizar la palabra clave de comparación de tipo de su idioma o construir. Por ejemplo, puede usar el TypeOf…Is construir en Visual Basic o is palabra clave de C#.

El GetType método es heredado por todos los tipos que derivan de Object. Esto significa que, además de utilizar la palabra clave de comparación de su propio idioma, puede utilizar el GetType método para determinar el tipo de un objeto determinado, como se muestra en el ejemplo siguiente.

using System;

public class Example
{
   public static void Main()
   {
      object[] values = { (int) 12, (long) 10653, (byte) 12, (sbyte) -5,
                         16.3, "string" }; 
      foreach (var value in values) {
         Type t = value.GetType();
         if (t.Equals(typeof(byte)))
            Console.WriteLine("{0} is an unsigned byte.", value);
         else if (t.Equals(typeof(sbyte)))
            Console.WriteLine("{0} is a signed byte.", value);
         else if (t.Equals(typeof(int)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(long)))   
            Console.WriteLine("{0} is a 32-bit integer.", value);
         else if (t.Equals(typeof(double)))
            Console.WriteLine("{0} is a double-precision floating point.", 
                              value);
         else
            Console.WriteLine("'{0}' is another data type.", value);
      }
   }
}
// The example displays the following output:
//    12 is a 32-bit integer.
//    10653 is a 32-bit integer.
//    12 is an unsigned byte.
//    -5 is a signed byte.
//    16.3 is a double-precision floating point.
//    'string' is another data type.

La Type objeto expone los metadatos asociados a la clase de la actual Object.

En el ejemplo de código siguiente se muestra que GetType devuelve el tipo en tiempo de ejecución de la instancia actual.

using System;

public class MyBaseClass {
}

public class MyDerivedClass: MyBaseClass {
}

public class Test 
{
   public static void Main() 
   {
      MyBaseClass myBase = new MyBaseClass();
      MyDerivedClass myDerived = new MyDerivedClass();
      object o = myDerived;
      MyBaseClass b = myDerived;

      Console.WriteLine("mybase: Type is {0}", myBase.GetType());
      Console.WriteLine("myDerived: Type is {0}", myDerived.GetType());
      Console.WriteLine("object o = myDerived: Type is {0}", o.GetType());
      Console.WriteLine("MyBaseClass b = myDerived: Type is {0}", b.GetType());
   }
}
// The example displays the following output:
//    mybase: Type is MyBaseClass
//    myDerived: Type is MyDerivedClass
//    object o = myDerived: Type is MyDerivedClass
//    MyBaseClass b = myDerived: Type is MyDerivedClass 

Universal Windows Platform
Disponible desde 8
.NET Framework
Disponible desde 1.1
Portable Class Library
Compatible con: portable .NET platforms
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1
Volver al principio
Mostrar:
© 2016 Microsoft