POO

27/10/2004 - 12:43 por e-lores | Informe spam
Como puedo hacer para obtener un objeto concreto si solo tengo su clase
base?

Me explico:

1.-Tengo una clase A y dos clases B y C que heredan de A.
2.-Tengo dos clases que implementan funciones para cada una de las clases B
y C:
GestorB.funcion1(Byval obj as claseB);
GestorC.funcion2(Byval obj as claseC);
3.-Finalmente tengo una clase D generica con una funcion
ClaseD.funcion3(Byval obj as claseA)

Necesito que esta funcion3 llame al gestor adecuado. ¿Como puedo convertir
un objeto a su clase 'primaria' si solo tengo la clase base?

Gracias
 

Leer las respuestas

#1 Cesarion
27/10/2004 - 14:49 | Informe spam
Todos los objetos tienen un método GetType, el cual te permite identificar
cual es el verdadero tipo de datos del objeto, esto lo puedes utilizar para
identificar cual fue el tipo de datos que te pasaron y convertirlo despues
con CType y ya utilizarlo para llamar la fución correcta

Te envio un ejemplo del uso del GetType, espero que te sirva.

Public Class MyBaseClass
Inherits Object

End Class




Public Class MyDerivedClass
Inherits MyBaseClass
End Class


Public Module module1

Public Sub Main()
Dim mybase1 As New MyBaseClass
Dim myDerived As New MyDerivedClass
Dim o As Object = myDerived
Dim b As MyBaseClass = myDerived
Console.WriteLine("mybase: Type is {0}", mybase1.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())
Console.Read()
End Sub
End Module


"e-lores" wrote:

Como puedo hacer para obtener un objeto concreto si solo tengo su clase
base?

Me explico:

1.-Tengo una clase A y dos clases B y C que heredan de A.
2.-Tengo dos clases que implementan funciones para cada una de las clases B
y C:
GestorB.funcion1(Byval obj as claseB);
GestorC.funcion2(Byval obj as claseC);
3.-Finalmente tengo una clase D generica con una funcion
ClaseD.funcion3(Byval obj as claseA)

Necesito que esta funcion3 llame al gestor adecuado. ¿Como puedo convertir
un objeto a su clase 'primaria' si solo tengo la clase base?

Gracias




Preguntas similares