Verständnis delegates und Events in C# mit einem konkreten Beispiel

So, ich bin an dem Punkt, der ein Verständnis der Ereignisse und Delegaten.

Ich overally verstehen, die Verwendung von Delegierten.
Die einzige Sache, die mir sorgen über die Delegierten, ob ein Delegierter kann konfiguriert werden, um mit Funktionen, die nicht in Bezug auf Ereignisse, die in irgendeiner Weise... wenn ja, wie Schreibe ich die Logik für eine delegate-Funktion definiert? (Ich denke, eine solche Funktion nicht wirklich viel von einen Punkt, um es, aber es ist gut zu wissen).

Als für Ereignisse... ich habe eine harte Zeit, es zu verstehen. Ich bekomme die Idee, dass ein Ereignis eine Funktion, die ausgeführt wird, wenn etwas passiert im code.
Allerdings habe ich nicht den Prozess der Erstellung einer Veranstaltung. Teilweise.

Dieser Frage verwende ich eine Antwort von Gary Willoughby: https://stackoverflow.com/a/803528/1104766
Es wurde geschrieben auf eine Frage aus, die ich zu verstehen versucht, dieses ganze Thema.

Was habe ich nicht bekommen, im obigen Beispiel:

MyObject.OnMaximum += new MyEventHandler(MaximumReached);

Erste, wie kann erstellen Sie eine Instanz des Delegaten, und übergeben Sie nur 1 variable, wenn es benötigt 2? Es muss etwas fehlt mir...

Das zweite, was über dieser Linie ist, dass die new ...() Instanz wird Hinzugefügt der OnMaximum Funktion, die sich in MyObject eine Instanz von MyClass - was genau ist OnMaximum wenn eine solche Sache getan werden kann? Es wurde nie wirklich definiert zu!

      if(OnMaximum != null) {
        OnMaximum(this, new MyEventArgs("You've entered " +
          value.ToString() +
          ", but the maximum is " +
          Maximum.ToString()));
      }

Als für diesen Teil OnMaximum heißt aber Logik war nie wirklich definiert eine beliebige Stelle im code, also was könnte das Resultat sein? Offensichtlich ich denke, es würde dem text "Sie haben eingegeben............." aber meine Frage ist, um genauer zu sein, was passiert wirklich mit den Werten der Funktion/Ereignis erhält?

Markierte ich alle meine Fragen in FETT für Klarheit.

P. S, ich weiß, diese Frage in der Regel gepostet wurde ein paar mal.

Bitte beachten Sie, dass diese konkrete Frage bezieht sich auf eine Antwort geschrieben von einem anderen Mitglied und die Fragen, die hier gestellt werden, speziell auf dieses Beispiel. Das ist, warum solche Antworten nicht wirklich gefunden werden in google.

Für die Platte, allerdings habe ich die Suche, bevor ich gepostet, und ich wollte versuchen zu verstehen, aber ich denke, Beispiele sind der beste Weg für mich, um etwas zu verstehen, vor allem, wenn meine Kenntnisse der englischen CS Vokabular fehlt.

InformationsquelleAutor Asaf | 2012-12-30
Schreibe einen Kommentar