Tengo las siguientes clases en un Modulo
Class MiClaseA
Public ClaseHija as New MiClaseB
End Class
Class MiClaseB
Public ValorB as Integer = 100
End Class
Ahora, tengo un control al cual le puedo pasar
MiClaseA.ClaseHija por referencia
Class MiControl
Public Clase as Object
Sub UsarClase(ByRef CualquierClase as Object)
Clase = CualquierClase
End Sub
End Class
Por lo tanto digo:
MiControl(MiClaseA.MiClaseHija)
Y luego puedo ver el ValorB usando MiControl
TextBox1.text = MiControl.Clase.ValorB ( Muestra 100 )
El problema viene ahora, hago un Marshal
Marshal.PtrToStructure(pMem,MiClaseA) donde hay un nuevo
valor para ValorB digamos 50
asi que:
TextBox1.text = MiControl.Clase.ValorB deberia mostrarme
50, pero no... sigue el 100!
pero en cambio si digo:
TextBox1.text = MiClaseA.MiClaseHija.ValorB si veo el
nuevo valor, el 50!
Es como si despues del Marshal tuviese otra referencia
nueva a MiClase, diferente a la de MiControl que sigue
usando la vieja, tengo que volver a pasarle la clase para
que funcione:
MiControl(MiClaseA.MiClaseHija)
No quiero hacer eso, quiero que despues del Marshal
MiControl vea el nuevo dato en MiClase sin tener que
pasarle la clase otra vez
Alguna idea?
Gracias
AJPB
Leer las respuestas