Categorías: Tutoriales

Comprobar de qué tipo es una variable u objeto en C#

Cuando tenemos un objeto de tipo genérico Object en C#, podemos hacer con él las operaciones básicas de cada objeto pero en ocasiones, necesitaremos convertirlo en un objeto menos abstracto para poder hacer operaciones más concretas.

Aunque esta entrada no forma parte del curso de Mono, sí está muy relacionada con esta entrega dedicada a tipos de datos.

Si tenemos una variable u objeto y no sabemos su tipo con seguridad, disponemos de dos métodos que usaremos para ver cuál es realmente el tipo del mismo. Veamos:

Por ejemplo, ¿cómo saber si el objeto “auxiliar” es un entero con signo de 32 bits (el entero más estándar, el que usamos al poner int simplemente)?

if(auxiliar.GetType() == Type.GetType("System.Int32"))
   return true;
else
   return false;

Al igual que con enteros, podemos hacer la comprobación para cualquier tipo:

  • Boolean: valor booleano
  • Byte: ocho bits sin signo
  • Char: carácter UNICODE
  • DateTime: fecha con tiempo
  • Decimal: número decimal
  • Double: pnto flotante de precisión doble
  • Int16: entero con signo de 16 bits
  • Int32: ídem pero de 32 bits
  • Int64: ídem pero de 64 bits
  • SByte:  8 bits con signo
  • Single: punto flotante de precisión simple
  • UInt16: entero sin signo de 16 bits
  • UInt32: ídem pero de 32 bits
  • UInt64: ídem pero de 64 bits
F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • if(auxiliar.GetType() == TypeOf(System.Int32))
    return true;
    else
    return false;

    Esto seria lo mismo no???

  • @brandochn: Te comento, "typeof" es un operador, no un método y para lo que comentas sí sería lo mismo.

    Sin embargo como operador que es tiene limitaciones respecto a Type.GetType():
    * No se puede sobrecargar
    * Para obtener el tipo de una expresión en tiempo de ejecución no podemos usar typeof()

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace