Last active
August 29, 2015 14:02
-
-
Save Fhernd/ea8992af6400b5e95baf to your computer and use it in GitHub Desktop.
Demostración de uso de eventos en C#.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment