C# eventos

C# eventos

Os eventos devem ser respondidos o mais rápido possível por aplicativos. De modo que interrompa, a comunicação entre processos é realizada através do uso de eventos. Ações do usuário, como pressionamentos de teclas, cliques e movimentos de mouse, como eventos gerados pelo sistema, são exemplos de ações do usuário. Em C#, um evento é um delegado que foi encapsulado. O delegado define a declaração do método do manipulador de eventos para o assinante da classe. No artigo, especificaremos o evento que ocorre em C# e também notifica as outras classes sobre ele, além de discutir o manipulador de eventos de ocorrência em C#.

O que é evento em C# no Ubuntu 20.04?

Os delegados são usados ​​para definir eventos em C#, que são um subconjunto de delegados. É necessário um editor para aumentar um evento em C#, e uma classe de assinante também é necessária para receber e lidar com um evento. O evento é publicado com a ajuda da classe do editor. A classe de assinantes é uma classe adicional que processa esses eventos. Um paradigma do editor-assinante é usado para eventos em C#. Em geral, a classe que envia o evento é conhecida como a classe do editor, e a classe que recebe o evento é conhecida como classe de assinante.

Sintaxe de declarar o evento em C# no Ubuntu 20.04

A sintaxe de uma função ou método é importante na programação e temos uma sintaxe simples para a função de manipulador de eventos é a seguinte:

Delegado público void delegateHandler (); // delegado

Primeiro, o tipo de evento do delegado deve ser especificado antes que o evento possa ser declarado na classe.

Evento público void DelegateHandler EventHandler (); // evento

O código anterior cria um "DelegateHandler" usando o delegado de palavras -chave e um evento "EventHandler" que chama o delegado quando for criado. Observe que somente na classe onde o evento foi declarado pode ser usado para invocar.

Como declarar os eventos em C# no Ubuntu 20.04

Para entender como o delegado e o manipulador de eventos funciona em C#, devemos ter exemplos práticos de programação. Esses exemplos são implementados no Ubuntu 20.04 usando um compilador mono para C#.

Exemplo # 1: Programa de usar delegados em C # no Ubuntu 20.04

O exemplo é simplesmente declarar o delegado e também declarar uma variável delegada com a palavra -chave do evento. Declaramos um evento para o seguinte código na classe do editor.

Nós importamos a biblioteca do sistema de C# como "usando o sistema", que nos ajuda a incluir as classes e funções, como a classe de console e a função da linha de escrúpulos. O espaço para nome tem o nome "MyApp", que identifica e encapsula nosso código. O delegado é definido aqui como "del" da string de tipo e passa "str" ​​de string como um parâmetro. Depois disso, a classe do editor é criada como "EventExample". Na classe do editor, declaramos um delegado "del" e, usando o modificador "Evento", declaramos um evento para o delegado do tipo "Del".Então, chamamos de "exemplo de exemplo" e criamos um objeto "este.Evento".

O objeto é inicializado com o delegado "del" usando uma nova palavra -chave e passando outro objeto "Este.Hellouser ”para isso. Nós chamamos de "Helloouser" como um tipo de string que passou com um novo objeto "MyUser" como um parâmetro. A declaração de devolução retornará o valor de MyUser junto com a string "Hello". O Maid Main invocou a classe do editor "EventExample", onde atribuímos um valor a "MyUser" no "OBJ. Evento". O “obj. Evento ”é inicializado para a variável“ resultado ”que passamos no console.Método WriteLine para exibição.

A saída da execução do programa acima é exibida na tela do console.

Exemplo # 2: Programa de consumir um evento em C # no Ubuntu 20.04

A classe de assinante deve se registrar para o evento e lidar com o método cuja declaração corresponde ao delegado, como mostrado no programa abaixo.

O evento "MyProcessCompleted" está inscrito na classe "MyProgram". Ele usa o operador "+=" para se registrar no evento. Lembre -se de que podemos adicionar métodos à lista de invasão do delegado multicast da mesma maneira. O evento é tratado aqui pelo método “P1_MyProcessCompleted ()”, que corresponde à declaração do tipo de delegado e do console. O método WriteLine é chamado para imprimir a mensagem específica. O método onprocessCompleted () é chamado no final do método startprocess (), que levanta um evento.

Em seguida, o nome do evento "OnprocessCompleted" é chamado e definido com o método virtual protegido. O método OnProcessCompleted () usa o ProcessCompleted. Invoke () para ligar para o delegado. Isso verifica primeiro que o evento "MyProcessCompleted" não deve ser nulo e, em seguida, chama o delegado de "notificador".

Após a execução do código aéreo, temos a saída impressa na tela anexada abaixo.

Exemplo # 3: Programa de aprovação de dados em EventHandlerDelegate embutido em C # no Ubuntu 20.04

A maioria dos eventos envia dados para seus assinantes. A classe EventArgs serve como base para todas as classes de dados de eventos. Para passar os dados para o manipulador, usamos o EventHandler. O código é ilustrado abaixo.

Aqui, temos uma aula chamada "EventHandlerProgram". Na classe, temos uma função principal vazia chamada que tem um objeto "EventHandlerProcess" como P1. O objeto é inicializado com a nova palavra -chave e invocado pelo EventHandlerProcess (). O P1_ProcessCompleted é registrado como um evento aqui usando o operador “+=”. No final do void main, a função StartProcess () também é invocada para o método OnprocessCompleded que levanta um evento. Em seguida, temos um manipulador de eventos "P1_ProcessCompleted", no qual passamos um objeto como "fonte" e tipo BOOL como "Issuccessful".

A linha do consoleWriteLine imprimirá a declaração booleana. O "EventHandler" da classe é criado no qual temos um entrevista interno para declarar um evento. Além disso, invocamos o método StartProcess, que possui um bloco de tentativa para manuseio de exceções se ocorrer. O “OnProcessCompleted” é chamado com o método virtual protegido. Na função OnprocessCompleted (), usamos Invoke () para aumentar um evento, especificamos "isso" como remetente e bool como "issuccessful". Observe que os manipuladores recebem um único valor de bool que indica se o processo foi bem -sucedido ou falhou.

A saída da compilação do código é mostrada na imagem abaixo.

Exemplo # 4: Programa de declarar e levantar eventos em C # no Ubuntu 20.04

A seguir, é apresentado um exemplo em que precisamos declarar e aumentar um evento na linguagem de programação C# utilizando o tipo de delegado principal.

No exemplo acima, temos uma classe “AritmeticOperations” como uma classe de editores na qual realizamos a funcionalidade necessária que verifica se a classe de invocação assinou o evento ou não. O delegado é declarado na classe do editor como um delegado e o evento é declarado como "myevent". O Add Add está tomando "x1" e "y1" como valores de parâmetros. No bloco de adição de vazios, chamamos um delegado através da declaração if-else para verificar a assinatura. O evento "myevent" é levantado na declaração if-else e imprime a mensagem através do método da linha de gravação. Em seguida, temos a classe de assinante como operações com os métodos necessários. Usamos o += Operador na classe de operações para assinar o evento "MyEvent" e nomeou um manipulador como "MyEventHandler" para executar as operações apropriadas quando um evento foi criado. O método do manipulador "MyEventHandler" na classe de operações tem a mesma implementação que no método delegado "delegado" na classe "aritmeticoperações".

Você pode ver a saída da operação aritmética básica por manipulador de eventos em C# abaixo.

Conclusão

Passamos profundamente pelo evento C# discutindo quais são os eventos em C# e a sintaxe básica que implementamos na programação. Também executamos o exemplo de eventos e manipuladores de eventos, mostrando como criar eventos simples, levantar um evento e também assinar um evento mostrando sua saída na tela do terminal do Ubuntu. Estes são exemplos muito básicos que podem ajudá -lo a entender claramente.