Hola a todos.
Demás está explicarles que estoy intentando aprender Métodos virtuales en C#, el caso es que la manera que muestro el método virtual es infantil.-
La consulta es, hay alguna manera de cambiar new x override mediante programación.-
Les pongo un Ej. en foxpro:
STORE "DISABLE" TO estado
&estado(de esta manera no me mostraba la cadena "Disable" sino el estado del botón).-
Les dejo el programita.-
Código:
using System;
namespace HerenciaConstructores
{
public class A
{
public virtual void Metodo()
{
Console.Write("\n hola metodo en A..");
}
}
public class B : A
{
public override void Metodo()
{
Console.Write("\n hola metodo en B..");
}
}
public class C : A
{
public new void Metodo()
{
Console.WriteLine("\n hola metodo en C..");
}
}
class ProgramaApp
{
static void Main(string[] argumentos)
{
A ab = new B();
A ac = new C();
Console.Write("\n =============== Método No Virtual (new)===============");
ac.Metodo();
ab.Metodo();
Console.Write("\n\n =============== Método Virtual (virtual/override)===============");
Console.Write("\n hola metodo en B..");
Console.Write("\n hola metodo en C..");
Console.Write("\n\n Pulse una tecla para cerrar la aplicación..."); Console.ReadLine();
}
}
}
/*hiding = ocultación
override = anular
Efectivamente new “oculta” la implementación padre del método, esto lo notamos al instanciar C en A, como encontramos
que la implementación de C es “nueva” entonces recurrimos a la versión “original” del método (ya que será una instancia de A después de todo).
En el caso de instanciar B sobre A nos damos cuenta que “override” indica que siempre debemos usar esa versión ya que modifica efectivamente
a la implementación original. Podriamos decir entonces que mientras “override” modifica la implementación original, new “reimplementa” el método.
Morajela, al castear hacia abajo en la cadena de implementación el CLR buscará y preferirá las implementaciones “override”.-*/
Como es mi primer post me voy a presentar.-
Tengo 61 años y soy un apasionado por la programación, soy autodidacta y estudio con libros electrónicos y mucha pero mucha consulta en los foros.-
Un gran abrazo.
Daniel Argentina-Santa Fé - Arequito
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A