public Quemador(TanqueDeAgua tanque) 
 {
     Timer = new Timer(100);//instancia de Timer.
     Timer.Enabled = false;
     Timer.Elapsed += Encender;
     Tanque = tanque;
 }
 public event EventHandler<ArgumentosCambioDeEstado> EnCambioDeEstado;//un evento, una clase especial de delegado que puede guardar muchos metodos. se llama EnCambioDeEstado.// todos los metodos que se agregen aqui, deben implementar la firma que regresa void, y recibe un object y el otro objeto que hereda de envent argrs.
 public Termostato(TanqueDeAgua tanque)
 {
     TemLimiteSup = 40;
     TemLimiteInferior = 20;
     Estado = Estado.Piloto;
     Tanque = tanque;
     Tanque.EnCambioTemperatura += ChecarEstado;//handler, cuando se haga una instancia de este objeto, el metodo ChecarEstado se va ejecutar.
 }
        public BoilerAutomatico() 
        {
            Tanque = new TanqueDeAgua();
            Termostato = new Termostato(Tanque);
            Timer = new Timer(100);//cada 100 milisegundsw va ejecutar lo que haya en el metodo.
            Timer.Enabled = false;//no esta habilitado.
            Quemador = new Quemador(Tanque);    
            Timer.Elapsed += DespacharAgua;//este es un EventHandler y como tal guarda un arreglo de metodos, es como un delegado, pero un arreglo de delegados. y se le agregan metodos con el +=.DespacharAgua es un metodo que cumple con la firma de Time.Elapsed.

            Termostato.EnCambioDeEstado += ManejarQuemador;//este es un EventHandlere//ManejarQuemador es el nombre del metodo que se va guardar en CambioDeEstado que es el evento y que tiene cierta firma.
        }