Feedback

C# - Delegate (Events)

Veröffentlicht von am 20.04.2006
(6 Bewertungen)
Auslösen eines Events
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

//Ein Delegate beschreibt, wie eine Funktion aufgerufen
//wird! (Eine Klasse von Funktion!)
public delegate void NeuerEventHandler();
//Es können auch Variable übergeben werden
public delgate void NeuerEventHandler2(string EineVariable);


//Event anlegen
public event NeuerEventHandler EventNeu;

public event NeuerEventHandler2 EventNeu2;


private void Button_Click(object sender, EventArgs e)
{
  //Auslösen des Events
  if (EventNeu != null)
    EventNeu();

  if (EventNeu != null)
    EventNeu(EineVariable);
}

//*********************************************************
//Diese Methode wird automatisch durch ein Doppelklick in
//Ereignisse des jeweiligen Controls (z.B. ein UserControl),
//was dieses Event beinhaltet, erzeugt.
private void EventNeu()
{
  //Hier können nun die Aktionen stehen, die das Event
  //bewirken sollen
}
private void EventNeu(string EineVariable)
{
  //Hier können nun die Aktionen stehen, die das Event
  //bewirken sollen
}

Abgelegt unter Event, Delegate.

2 Kommentare zum Snippet

AKR schrieb am 29.05.2006:
So ein Unfug... wer events nicht richtig verstanden hat, der sollte auch kein Snippet schreiben...

Der Code oben kann nicht compiliert werden, weil Event einmal ein event sein soll und ein zweites mal als private void Methode deklariert wird.
So funktionieren auch keine Events.

Vielleicht erst noch mal in einem gescheiten Buch nachlesen?
Elvis schrieb am 24.10.2006:
Um mich meinem Vorredner anzuschließen (nur nicht ganz so destruktiv ;-) ).

Delegates sind immutable, d.h. wenn jemand eine weitere Instanz in die Liste packt wird eine neue Instanz des zugewiesenen Events angelegt.
Zwischen der Prüfung gegen null und dem Ausführen kann die Instanz also zu null geändert werden!

Das hier:
  //Auslösen des Events
if (EventNeu != null)
EventNeu();

Hätte so aussehen müssen:
  SomeDelegateType someEvent = this.SomeEvent;

//Auslösen des Events
if (someEvent != null)
someEvent();


Vielleicht sollte man das auch den Typen erklären, die die .Net SDK Docs schreiben. *g*
 

Logge dich ein, um hier zu kommentieren!