Conocer instancia

13/06/2006 - 18:57 por hugo | Informe spam
Hola grupo:

Suponiendo que tengo una clase base y dos derivadas de esa.
ClaseBase
ClaseDerivada1
ClaseDerivada2

Dim Objetox as ClaseBase

Luego en otro lugar se instacia por alguna de las derivadas.
Objetox=newClaseDerivada1

Como puedo saber si Objetox se instancio mediante ClaseDerivada1 o 2.
Gracias y saludos.
 

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
13/06/2006 - 19:38 | Informe spam
"hugo" escribió en el mensaje
news:
Hola grupo:

Suponiendo que tengo una clase base y dos derivadas de esa.
ClaseBase
ClaseDerivada1
ClaseDerivada2

Dim Objetox as ClaseBase

Luego en otro lugar se instacia por alguna de las derivadas.
Objetox=newClaseDerivada1

Como puedo saber si Objetox se instancio mediante ClaseDerivada1 o 2.
Gracias y saludos.



Hola.

Si ObjetoX esta declarado como ClaseBase es porque no necesitas saber si fue
instanciado como ClaseDerivada1 o como ClaseDerivada2.

Puedes utilizar ObjetoX.GetType.Name [o la alternativa "VB":
TypeName(ObjetoX)], que siempre te devolverá el nombre del tipo concreto de
la instancia.

Pero deberias revisar tu diseño: la idea de usar una clase base es ocultar
los detalles de las clases derivadas. La decision que debes tomar en el
codigo del cliente (basada en el tipo concreto de la instancia) debería
estar resuelta en la clase base.


Salud!

Preguntas similares