Foros del Web » Programación para mayores de 30 ;) » .NET »

Llamado automático a clase base

Estas en el tema de Llamado automático a clase base en el foro de .NET en Foros del Web. Buenas, estoy programando en base a una API, seguramente ustedes que saben C# al ver el codigo saben bien como funcion. Queria saber si me ...
  #1 (permalink)  
Antiguo 10/02/2017, 18:33
Avatar de Fernand0  
Fecha de Ingreso: septiembre-2005
Ubicación: Buenos Aires
Mensajes: 610
Antigüedad: 19 años, 2 meses
Puntos: 19
Llamado automático a clase base

Buenas, estoy programando en base a una API, seguramente ustedes que saben C# al ver el codigo saben bien como funcion. Queria saber si me podian explicar un poco en lo posible y/o pasarme algo de material(enlaces, se ingles) sobre el funcionamiento de este codigo. Mi idea es agregarle cosas y bueno, para eso necesito entender bien como funciona.

Código C#:
Ver original
  1. [Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
  2.     public class TestBot1 : Robot
  3.     {
  4.  
  5.         protected override void OnStart()
  6.         {
  7.             // Put your initialization logic here
  8.         }
  9.  
  10.         protected override void OnTick()
  11.         {
  12.             // Put your core logic here
  13.         }
  14.  
  15.         protected override void OnStop()
  16.         {
  17.             // Put your deinitialization logic here
  18.         }
  19.        
  20.        
  21.     }

El constructor de la clase Robot, es llamado y todo es iniciado..
Ahora bien, lo unico que se me ocurre es que lo haga con el atributo de clase [Robot]
No se si es asi y no hay codigo muy simple como para que se entienda.

Cualquier ayuda es agradecida.
Gracias por su tiempo.
  #2 (permalink)  
Antiguo 10/02/2017, 19:11
Avatar de Rodrhigo  
Fecha de Ingreso: septiembre-2011
Ubicación: Temuco-Valdivia-Osorno
Mensajes: 254
Antigüedad: 13 años, 2 meses
Puntos: 48
Respuesta: Llamado automático a clase base

Lo que yo veo ahí es que tienes una clase hija que manda a sobre-escribir(override) algunos métodos de la clase padre.

Los constructores de una clase padre(Robot) son llamados al instanciar una clase hija, cuando haces new TestBot1() se invoca el constructor de la clase padre.

Entonces tienes una clase padre con ciertos métodos que son llamadas por esta misma pero como creaste la clase TestBot1 con metodos con la la palabra override lo que haces es reemplazar el método original por la nueva función.

Ejemplo:
Código C#:
Ver original
  1. public class TestBot1 : Robot {
  2.         protected override void OnStart(){
  3.            //Este metodo sobreescribio al metodo OnStart() que tenia la clase Robot, ahora cuando la clase padre llame invoque OnStart()
  4.           // llamara a esta función(en lugar de la antigua) que mejora o implementa una mejor funcionalidad
  5.            base.OnStart();//llamamos al metodo original.
  6.            System.Windows.Forms.MessageBox.Show("OnStart llamado");//nueva funcionalidad
  7.         }    
  8.     }

Desconozco la funcionalidad del corchete [Robot(...)]
__________________
Rodrigo Agüero

Etiquetas: c#
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:42.