Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Industrial programming >> Linguagem C

Eventos em C#: Manipulando Ações do Usuário e Notificações do Sistema

Eventos sã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. As aplicações precisam responder a eventos quando eles ocorrem. Por exemplo, interrupções. Eventos são usados para comunicação entre processos.

Usando Delegates com Eventos

Os eventos são declarados e disparados em uma classe e associados aos manipuladores de eventos usando delegates dentro da mesma classe ou de outra classe. A classe que contém o evento é usada para publicar o evento. Isso é chamado de classe publicadora (publisher). Alguma outra classe que aceita este evento é chamada de classe assinante (subscriber). Eventos usam o modelo publicador-assinante.

Um publicador é um objeto que contém a definição do evento e do delegate. A associação evento-delegate também é definida neste objeto. Um objeto da classe publicadora invoca o evento e ele é notificado a outros objetos.

Um assinante é um objeto que aceita o evento e fornece um manipulador de eventos. O delegate na classe publicadora invoca o método (manipulador de eventos) da classe assinante.

Declarando Eventos

Para declarar um evento dentro de uma classe, primeiro você deve declarar um tipo delegate para o evento:

public delegate string BoilerLogHandler(string str);

em seguida, declare o evento usando a palavra-chave event:

event BoilerLogHandler BoilerEventLog;

O código anterior define um delegate chamado BoilerLogHandler e um evento chamado BoilerEventLog, que invoca o delegate quando é disparado.

Exemplo

Demo ao Vivo
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 "Bem-vindo " + 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, produz o seguinte resultado:

Bem-vindo Tutorials Point

Linguagem C

  1. Classes e Objetos em C#: Fundamentos para POO Robusta
  2. Entendendo Modificadores de Acesso em C#: Public, Private, Protected, Internal e Mais
  3. Palavra-chave Static em C#: Dominando Variáveis, Métodos e Classes Estáticas
  4. Dominando Classes e Métodos Abstratos em C#: Guia Prático
  5. Entendendo Classes Aninhadas em C#: Definição, Uso e Herança
  6. Entendendo Classes e Métodos Parciais em C#
  7. Dominando Classes e Métodos Sealed em C#: Quando Usar, Exemplos Claros e Segurança de Código
  8. Entendendo Polimorfismo em C++: Guia Prático
  9. Dominando Abstração de Dados em C++: Simplifique Design com Separação Interface-Implementação
  10. Encapsulamento de Dados em C++: Proteja Seu Código