Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Articulos.Cap03
- {
- public delegate void DivisorEventHandler(object o, DivisionEventArgs e);
- // Representa una clase con los argumentos del evento del
- // evento de la operación de división:
- public class DivisionEventArgs : EventArgs
- {
- // Por cada evento se registra el valor de la operación,
- // y se guarda en el campo de sólo lectura `numero`:
- public readonly int numero;
- public DivisionEventArgs(int num)
- {
- numero = num;
- }
- }
- // Clase interesada en escuchar las operaciones de
- // división de dos maneras: en la consola y
- // con un mensaje sobre el control MessageBox:
- public class SubscriptorDivision
- {
- public void MostrarEnConsola(object o, DivisionEventArgs e)
- {
- Console.WriteLine("Evento. Dividendo de 7: {0}", e.numero);
- }
- public void MostrarEnMessageBox(object o, DivisionEventArgs e)
- {
- MessageBox.Show("Evento. Dividendo de 7: " + e.numero.ToString());
- }
- }
- public class Aplicacion
- {
- // Evento asociado con la división por 7:
- public static event DivisorEventHandler Divisor7;
- public static void Main()
- {
- SubscriptorDivision dbsl = new SubscriptorDivision();
- Divisor7 += new DivisorEventHandler(dbsl.MostrarEnConsola);
- Divisor7 += new DivisorEventHandler(dbsl.MostrarEnMessageBox);
- GenerarNumeros();
- }
- // Receptor de cada cambio (operación de división por 7):
- public static void OnDivisionPor7(DivisionEventArgs e)
- {
- if (Divisor7 != null)
- {
- Divisor7(new object(), e);
- }
- }
- public static void GenerarNumeros()
- {
- for (int i = 1; i <= 100; ++i)
- {
- if ( i % 7 == 0)
- {
- DivisionEventArgs e1 = new DivisionEventArgs(i);
- OnDivisionPor7(e1);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement