Advertisement
Fhernd

EjemploEvento.cs

Jul 29th, 2014
3,978
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2.  
  3. namespace Articulos.Cap04
  4. {
  5.     public class Broadcaster
  6.     {
  7.         CambioPrecioEventHandler _cambioPrecio;     // Delegado privado
  8.        
  9.         public event CambioPrecioEventHandler CambioPrecio
  10.         {
  11.             add
  12.             {
  13.                 _cambioPrecio += value;
  14.             }
  15.             remove
  16.             {
  17.                 _cambioPrecio += value;
  18.             }
  19.         }
  20.        
  21.         public event CambioPrecioEventHandler CambioPrecio;
  22.     }
  23.    
  24.     internal class EjemploEvento
  25.     {
  26.         // Campo que siempre que sea modificado se
  27.         // notificará su nuevo estado a través de un evento:
  28.         private int valor;
  29.        
  30.         // Delegado diseñado para el evento que 'monitorea'
  31.         // el cambio de estado del campo `valor`:
  32.         public delegate void ManipulacionCampoValorEventHandler();
  33.        
  34.         // Evento que monitorea el estado del campo `valor`:
  35.         public event ManipulacionCampoValorEventHandler CambioNumero;
  36.        
  37.         // Constructor que inicializa el campo `numero`:
  38.         public EjemploEvento(int numero)
  39.         {
  40.             EstablecerValor (numero);
  41.         }
  42.        
  43.         protected virtual void OnValorCambio()
  44.         {
  45.             if (CambioNumero != null)
  46.             {
  47.                 CambioNumero();
  48.             }
  49.             else
  50.             {
  51.                 Console.WriteLine("Evento: El estado del campo `valor` ha cambiado.");
  52.             }
  53.         }
  54.        
  55.         public void EstablecerValor(int numero)
  56.         {
  57.             if (valor != numero)
  58.             {
  59.                 valor = numero;
  60.                 OnValorCambio();
  61.             }
  62.         }
  63.     }
  64.    
  65.     internal class Aplicacion
  66.     {
  67.         public static void Main()
  68.         {
  69.             // Inclusive cuando creamos una instancia de `EjemploEvento`
  70.             // se genera el evento:
  71.             EjemploEvento e = new EjemploEvento(5);
  72.            
  73.             // Otras operaciones que generan un evento:
  74.             e.EstablecerValor(7);
  75.             e.EstablecerValor(11);
  76.         }
  77.     }
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement