🧐Diferencia entre typeof y .GetType()

💠typeof(TuClase): Se usa cuando conoces la clase en tiempo de compilación. Es una forma estática de obtener el Type de una clase y se debe usar el nombre de la clase directamente con el operador typeof.

💠objeto.GetType(): Se usa para obtener el tipo de una instancia de objeto en tiempo de ejecución. Es una forma dinámica, porque no necesitas saber el tipo exacto del objeto cuando escribes el código; el tipo se determina cuando el programa se está ejecutando.

Ambas devuelven un objeto Type que representa información sobre la clase, incluidas sus propiedades, métodos, atributos, etc.

Ejemplo:

Si tienes una clase Animal y una instancia de esta clase llamada gato, los ejemplos de uso serían:

  • Usando typeof:

Type tipo = typeof(Animal);
  • Usando .GetType() en una instancia de Animal llamada gato:

Animal gato = new Animal();
Type tipo = gato.GetType();

Ambos enfoques te darán acceso al mismo tipo de información sobre la clase Animal, pero typeof es útil cuando conoces el tipo en tiempo de compilación, mientras que .GetType() es útil cuando el tipo exacto de objeto solo se conoce en tiempo de ejecución

Última actualización