‫In Ordnung, also was ist ein Delegierter?
‫Einfach ausgedrückt ist ein Delegat ein Typ, der einen Verweis auf eine Methode enthalten kann.
‫Und wenn Sie die Delegaten aufrufen, wird die referenzierte Methode aufgerufen.
‫Stellen Sie sich vor, wir entwickeln eine UI-Bibliothek, die andere Entwickler zum Erstellen mobiler Apps verwenden können.
‫Und eines der UI-Elemente, die andere Entwickler verwenden können, ist eine Schaltfläche.
‫Wenn wir uns den Code hinter der Schaltflächenklasse ansehen, mit der die grüne Schaltfläche auf dem Bildschirm erstellt wurde,
‫hat eine Schaltfläche wie diese die folgenden Eigenschaften.
‫Eine Zeichenfolge namens text mit dem Wert sendet eine Farbe namens back color, die etwas Grünliches ist, und natürlich
‫zwei heißt sie cise w ansys h für die Breite und Höhe der Schaltfläche.
‫Hier fehlt nun eine Methode, die den Code enthält, der ausgeführt werden muss, wenn auf die Schaltfläche geklickt
‫wird.
‫Jetzt haben wir hier ein Problem.
‫Wir als Entwickler dieses UI-Systems können nicht sagen, was die anderen Entwickler verwenden.
‫Unser UI-System möchte, dass die Schaltfläche ausgeführt wird, wenn sie angeklickt wird.
‫Aus diesem Grund müssen wir das UNCLICK-Ereignis als Delegaten und nicht als normale Methode bereitstellen.
‫Und da ein Delegat eine Variable ist, die eine Referenz auf eine Methode speichern kann, wie
‫wir bereits gehört haben, können andere Entwickler ihre eigene Implementierung in eine Methode schreiben, die die Logik enthält,
‫die beim Klicken ausgeführt werden soll, und sie den Schaltflächen beim Klicken zuweisen Delegate-Ereignis, von dem wir bereitgestellt haben, dass unser einziger Delegat so
‫definiert werden kann.
‫Lassen Sie uns es nun Stück für Stück aufschlüsseln. Wir beginnen mit dem Schreiben des Axis Pacifier, diesem privaten
‫Schlüsselwort, gefolgt vom Schlüsselwort Delegate, das dem Compiler mitteilt, dass wir einen neuen Typ definieren.
‫Und schließlich müssen wir den Methodentyp angeben, den unser Delegierter speichern kann.
‫Und mit Typ meine ich, dass der Rückgabetyp und die Parameter für Delegaten der Name des Delegaten sind, den wir gerade definiert
‫haben.
‫Der nächste Schritt besteht nun darin, eine Variable des neuen Delegattyps zu erstellen.
‫Wir definieren es also genauso wie wir jede Variable in Cis definieren, indem wir mit public beginnen, dann den
‫Typ der Variablen, die wir erstellen, die auf Delegierte aufheben ist, und zuletzt den Variablennamen, der aktiviert ist.
‫Also haben wir wieder eine öffentliche Variable vom Typ Unclick-Delegaten definiert und sie auf Click benannt.
‫Diese Variable kann eine Referenz auf jede Methode halten oder speichern, solange sie void als zurückgegebenen Typ hat und keinen
‫Parameter akzeptiert. Andernfalls erhalten wir einen ähnlichen Fehler wie beim Versuch, einen Float in einer Invariablen zu
‫speichern.
‫Wie können wir diesen neuen Delegaten verwenden?
‫Nehmen wir an, wir haben in dem Edem getrunken, das
‫eine Flasche in unsere Leinwand gefallen ist.
‫Nehmen wir an, der Name dieser Schaltfläche ist Senden-Schaltfläche.
‫Kommen wir also zuerst zu der Logik, die Sie ausführen möchten, wenn auf die Schaltfläche geklickt wird.
‫In unserem Fall möchten wir uns mit dem Netzwerk verbinden, die Nachricht senden und dem Benutzer eine Nachricht anzeigen.
‫Jetzt haben wir also eine normale Methode namens Send button click, die noch in keiner Weise mit der Schaltfläche verbunden ist.
‫Um dies zu beheben, müssen wir unsere Methode der unclick-Variablen vom Typ unclick-Delegaten zuweisen.
‫Beachten Sie, dass wir unseren Methodennamen ohne die
‫Klammern geschrieben haben, da wir ihn nicht aufrufen, sondern
‫nur seine Referenz im unclick-Delegaten speichern ruft den Unclick-Delegierten unserer Senden-Schaltfläche auf.
‫Das ruft im Gegenzug jede ihm zugewiesene Methode auf.
‫In diesem Fall ruft es die Schaltfläche zum Senden auf und der Dialog Nachricht gesendet wird auf diese Weise angezeigt.
‫Jeder, der unser UI-System verwendet, kann seine eigenen Methoden erstellen, dann seine Methoden unserem Delegaten zuweisen und
‫wir können sie aufrufen, wenn die Bedingungen stimmen.
‫Wir sind nicht auf Unclick-Ereignisse beschränkt.
‫Wir können sogar Stellvertreter erstellen, wenn die Anwendung beispielsweise gestartet oder geschlossen wird.
‫Nun, dies war ein sehr strenges Beispiel, aber dies ist ein echter Anwendungsfall für Delegierte im Allgemeinen.
‫Als nächstes werden wir lernen, wie man einen der bereits in C Sharp vorhandenen Delegaten verwendet.
‫Danach beginnen wir damit, unsere eigenen Delegierten zu erstellen, ähnlich wie in diesem Beispiel.
‫Wir sehen uns also im nächsten Video.