Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> C Taal

C# - Evenementen

Evenementen zijn gebruikersacties zoals het indrukken van toetsen, klikken, muisbewegingen, enz., of een gebeurtenis zoals door het systeem gegenereerde meldingen. Applicaties moeten reageren op gebeurtenissen wanneer ze zich voordoen. Onderbreekt bijvoorbeeld. Gebeurtenissen worden gebruikt voor communicatie tussen processen.

Delegates gebruiken bij evenementen

De gebeurtenissen worden gedeclareerd en aan de orde gesteld in een klasse en worden geassocieerd met de gebeurtenisafhandelaars met behulp van afgevaardigden binnen dezelfde klasse of een andere klasse. De klasse die de gebeurtenis bevat, wordt gebruikt om de gebeurtenis te publiceren. Dit wordt de uitgever . genoemd klas. Een andere klasse die deze gebeurtenis accepteert, wordt de abonnee . genoemd klas. Evenementen gebruiken de publisher-subscriber model.

Een uitgever is een object dat de definitie van de gebeurtenis en de gedelegeerde bevat. De associatie gebeurtenis-gedelegeerde is ook gedefinieerd in dit object. Een klasseobject van een uitgever roept de gebeurtenis op en wordt aan andere objecten gemeld.

Een abonnee is een object dat de gebeurtenis accepteert en een gebeurtenishandler biedt. De afgevaardigde in de uitgeversklasse roept de methode (event-handler) van de abonneeklasse aan.

Gebeurtenissen declareren

Om een ​​gebeurtenis binnen een klasse te declareren, moet u allereerst een gedelegeerde type declareren voor de even als:

public delegate string BoilerLogHandler(string str);

declareer vervolgens de gebeurtenis met behulp van de event trefwoord −

event BoilerLogHandler BoilerEventLog;

De voorgaande code definieert een gemachtigde met de naam BoilerLogHandler en een gebeurtenis met de naam BoilerEventLog , die de gedelegeerde aanroept wanneer deze wordt aangeroepen.

Voorbeeld

Live demo
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);
      }
   }
}

Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −

Welcome Tutorials Point

C Taal

  1. C# klasse en object
  2. C# Toegangsmodificaties
  3. C# statisch trefwoord
  4. C# abstracte klasse en methode
  5. C# geneste klasse
  6. C# Gedeeltelijke klasse en gedeeltelijke methode
  7. C# verzegelde klasse en methode
  8. Polymorfisme in C++
  9. Gegevensabstractie in C++
  10. Gegevensinkapseling in C++
  11. C# - Programmastructuur