using System;
using System.Collections.Generic;
using System.Text;
namespace Eventos01
{
public delegate void TipoCuboLLeno( int a, int b );
class Cubo
{
private int capacidad;
public event TipoCuboLLeno OnCuboLleno;
public Cubo( int _capacidad)
{
capacidad = _capacidad;
OnCuboLleno = null;
}
public void CheckCubo( int _lluvia )
{
if (_lluvia >= this.capacidad)
{
OnCuboLleno(this.capacidad, _lluvia);
}
}
}
class Manejador
{
public void EventoLanzado(int _capacidad, int _lluvia)
{
Console.WriteLine("Cubo rebosado ... " + "Capacidad: " + _capacidad + " Lluvia : " + _lluvia);
}
}
class Program
{
static void Main(string[] args)
{
Cubo myCubo = new Cubo(50);
Manejador hd = new Manejador();
myCubo.OnCuboLleno += new TipoCuboLLeno(hd.EventoLanzado);
// Número aleatorio para simular la lluvia
Random r = new Random();
int lluviaSim;
for (int dia = 0; dia != 1000; dia++) // Se simula para 1000 días
{
lluviaSim = (int)Math.Floor(100.00 * r.NextDouble());
myCubo.CheckCubo(lluviaSim);
}
}
}
}