//Cria objeto de evento, passa para OnFireAlarm public void Alarm() { Console.WriteLine("Smoke alarm at " + location); FireAlarmEventArgs e = new FireAlarmEventArgs(location); OnFireAlarm(e); }
//Chama o cuidadores de eventos se o delegate nao vazio, //argumento de evento de objeto passado por parametro protected void OnFireAlarm(FireAlarmEventArgs e) { //FireAlarm e a referencia de delegate - tenha certeza que nao esteja vazio if (FireAlarm != null) { FireAlarm(this, e); //passa o lancadir e os argumentos do evento } }
//Metodo assinatura confirma delegate private void Respond(object sender, FireAlarmEventArgs e) { Console.WriteLine("Fire department responding to alarm at " + e.Location + ", we are on our way!"); }