Visual Basic.NET - Clases Anidadas

 
Vista:

Clases Anidadas

Publicado por Juan Pérez (4 intervenciones) el 02/01/2009 15:14:36
Hola a todos,

Llevo varios días intentando hacer algo que parecía sencillo pero que no lo es tanto...

Tengo una clase llamada Articulo que posee todas las propiedades del artículo así como los métodos Guardar, Obtener, Borrar, etc etc.
Ahora bien, a su vez un artículo posee Articulos Equivalentes, Tarifas de Proveedores, etc etc... Y la solución que quería darle es añadir dos clases mas dentro de la clase Articulo, llamadas: Equivalentes y TarifasPrv. Dentro de cada una de estas clases también existirían los métodos Guardar, Obtener, etc

El problema se presenta cuando yo quiero acceder a las propiedades de la clase Articulo desde una subclase.

La herencia no me sirve de nada, ya que yo no quiero heredar métodos de la clase padre, además, una tarifa de proveedor no es un artículo que es la principal premisa de la herencia, sino que un artículo posee tarifas...

De tal modo que yo desde el código del formulario pueda hacer lo siguiente:

Dim MiArt as new Articulo

MiArt.Obtener()
MiArt.TarifasPrv.Obtener()

Por poner un ejemplo.

Además es necesario que las subclases puedan acceder a las propiedades de la clase principal, porque por ejemplo la clase Artículo posee la propiedad Cod del tipo string que guarda el código del artículo. La clase TarifasPrv debe conocer ese valor para obtener las tarifas de dicho artículo.

Espero haberme explicado correctamente, Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Clases Anidadas

Publicado por maria_85v (4 intervenciones) el 02/01/2009 15:53:48
porque no haces lo siguiente

dentro de la clase articulos crea variables de tipo clase, y que llame a la clase tarifas.
es decir tu tienes la clase articulos, y luego distintas clases, como la de tarifas
donde en la case articulos

generas una variable
Private MisTarifas as Tarifas
Espero haberte sido de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar