Estoy aprendiendo C# NET, para no quedarme en el pasado (y ver si consigo más laburo jaja). El tema es que estoy trabado con un concepto que no logro entender, algo que en realidad está más asociado a la POO... a ver si alguien me sabe dar una mano.
Tengo el siguiente código:
Código:
El caso es que este diminuto programa entra en loop. Al llamar al metodo "F" del objeto "b", se imprime en pantalla constantemente "Hola amigo!"... entiendo que en la linea comentada con un "*" (((A) this).F();) estoy llamando al metodo F() de la clase padre... pero no entiendo el LOOP... no logro visualizar el "circuito".using System; class A { public virtual void F() { Console.WriteLine("A"); } } class B:A { public override void F() { Console.WriteLine("Hola amigo!"); ((A) this).F(); // * Console.WriteLine("Adios amigo!"); } public static void Main() { B b = new B(); b.F(); } }
Yo interpreto esto... al llamar al metodo F (el override) de la clase B:
1. Imprimo "Hola amigo!"
2. Llamo al F() de la clase padre -> imprimo "A"
3. Imprimo "Adios amigo!"
No entiendo por qué al llegar la punto dos vuelvo al punto 1 !
Si alguien me pudiera tirar un poco de luz le agradecería mucho!!
Un saludo grande.