Este problema ha sido activado/desactivado y he escrito 4 wrappers ahora. Estoy seguro de que lo estoy haciendo mal y necesito descubrir dónde se está diversificando mi comprensión.C# base inheritance
Digamos que estoy usando la clase Rectángulo para representar barras de metal. (Esto funciona mejor que los animales)
Digamos que la clase base se llama "Barra".
private class Bar
{
internal Rectangle Area;
}
So. Ahora hacemos un rectángulo, digamos 300 unidades por 10 unidades.
private Bar CreateBar()
{
Bar1 = new Bar1();
Bar1.Area = new Rectangle(new Point(0,0), new Size(300,10));
return Bar1;
}
Fantástico, entonces tenemos una barra base.
Ahora digamos que queremos hacer que esta barra tenga un material, digamos acero. Asi que. . .
private class SteelBar : Bar
{
string Material;
}
Así que si lo hice. . .
private SteelBar CreateSteelBar()
{
SteelBar SteelB = new SteelB();
Bar B = CreateBar();
SteelB = B;
SteelB.Material = "Steel";
return SteelB;
}
De lo que me sale de este si llamo CreateSteelBar, se crea un steelbar que llama CreateBar. Así que termino con una barra de acero con un rectángulo de 300 por 10 y una cuerda anulada o vacía para el material. Luego configuro el material en acero.
Cuando intento algo similar en mi programa, sigue diciendo que no puedo crear implícitamente una clase superior de una clase más abajo. Me habría imaginado que esta es la razón por la que existe la herencia teniendo en cuenta todos los heredos de los ejemplos de animales que veo, pero espero que alguien me aclare.
Además, estoy seguro de que podría llamar al SteelBar = CreateBar();
pero lo hice por el camino largo aquí.
No tengo claro por qué no está utilizando constructores. Eso simplificaría su problema considerablemente. –
No devuelve el valor en 'CreateBar()' –
En este caso, en mi sistema, estoy creando una extensión para algo que tiene entre 1 y 500 elementos dentro de ella. – Charles