Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/10/2007, 10:43
Computer XTress
 
Fecha de Ingreso: diciembre-2004
Mensajes: 721
Antigüedad: 20 años, 1 mes
Puntos: 2
Exclamación C#: Un concepto que no logro comprender...

Hola qué tal?

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:
            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();
                        }
            }
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".

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.