C # - Eventos
Eventssão ações do usuário, como pressionamento de tecla, cliques, movimentos do mouse, etc., ou alguma ocorrência, como notificações geradas pelo sistema. Os aplicativos precisam responder aos eventos quando eles ocorrem. Por exemplo, interrupções. Os eventos são usados para comunicação entre processos.
Usando Delegados com Eventos
Os eventos são declarados e gerados em uma classe e associados aos manipuladores de eventos usando delegados dentro da mesma classe ou alguma outra classe. A classe que contém o evento é usada para publicar o evento. Isso é chamado depublisherclasse. Outra classe que aceita este evento é chamada desubscriber classe. Os eventos usam opublisher-subscriber modelo.
UMA publisheré um objeto que contém a definição do evento e o delegado. A associação evento-delegado também é definida neste objeto. Um objeto de classe de publicador invoca o evento e é notificado a outros objetos.
UMA subscriberé um objeto que aceita o evento e fornece um manipulador de eventos. O delegado na classe do editor invoca o método (manipulador de eventos) da classe do assinante.
Declarando eventos
Para declarar um evento dentro de uma classe, em primeiro lugar, você deve declarar um tipo de delegado para o mesmo como:
public delegate string BoilerLogHandler(string str);
então, declare o evento usando o event palavra-chave -
event BoilerLogHandler BoilerEventLog;
O código anterior define um delegado denominado BoilerLogHandler e um evento denominado BoilerEventLog , que invoca o delegado quando é gerado.
Exemplo
using System;
namespace SampleApp {
public delegate string MyDel(string str);
class EventProgram {
event MyDel MyEvent;
public EventProgram() {
this.MyEvent += new MyDel(this.WelcomeUser);
}
public string WelcomeUser(string username) {
return "Welcome " + username;
}
static void Main(string[] args) {
EventProgram obj1 = new EventProgram();
string result = obj1.MyEvent("Tutorials Point");
Console.WriteLine(result);
}
}
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Welcome Tutorials Point