‫Willkommen zurück.
‫In dieser Vorlesung lernen Sie anonyme Methoden kennen und anonyme Methode ist eine Methode ohne Namen.
‫Na, wer bekommt es?
‫Und anonyme Methoden in C Sharp können mit dem Schlüsselwort Delegate definiert und einer Variablen des
‫heiklen Typs zugewiesen werden.
‫Das bedeutet, dass wir nicht jedes Mal, wenn wir eine Methode aufrufen möchten, die einen Delegaten benötigt, eine eigene Methode
‫definieren müssen, da wir sie vielleicht einmal aufrufen möchten.
‫Wenn wir also jedes Mal einen dedizierten Delegaten definieren, wenn wir einen brauchen, kann dies die Codestruktur sehr schnell ruinieren.
‫Wenn Sie also zu unserem vorherigen Beispiel, in dem wir eine Reihe von Filtern erstellt haben, hinzufügen, erinnern Sie sich vielleicht daran, dass hier
‫alt, ein Senior und all die guten Dinge sind.
‫Und jetzt erstellen wir zwei zusätzliche Filter, bei denen wir einen benutzerdefinierten booleschen Ausdruck als
‫Filter erstellen und einen zweiten Filter, bei dem wir einfach alle Einträge in unserer Liste anzeigen.
‫Gehen wir also weiter zu unserer Hauptmethode, in der wir alle Personen angezeigt haben, die hier
‫diese Methode genannt haben, und jetzt erstellen wir einen neuen Filterdelegaten.
‫Ich werde also nur die Schlüsselwörter für Filterdelegierte verwenden, die wir hier oben eingerichtet haben.
‫Und Sie werden sehen, dass es einen booleschen Wert zurückgeben muss und eine Person als Parameter haben muss.
‫Nennen wir es also Filter.
‫Und hier müssen wir noch einmal das Schlüsselwort Delegates verwenden, und dann können wir die Parameter verwenden, die wir übergeben
‫müssen.
‫Und Sie können still sitzen und sich beschweren, denn zuerst müssen wir hier unten ein Semikolon hinzufügen
‫und dann müssen wir sicherstellen, dass wir einen Wert zurückgeben.
‫Vom Typ Goldbarren.
‫Daher geben nicht alle kalten Pfade einen Wert in der anonymen Methode zurück, daher heißt es hier bereits anonyme Methode.
‫Was wir also nur sagen werden, ist, einfach das Alter zurückzugeben, bei dem es größer oder gleich 20 ist und bei dem
‫das Alter kleiner als 30 ist.
‫Und gleich 30.
‫Gut.
‫Das wars so ziemlich.
‫Hier wird also eine neue Variable namens Filter vom Typ Filter Delegat erstellt.
‫Das ist also nur variabel, oder?
‫Dann weisen wir ihr statt einer bereits definierten Methode eine anonyme Methode zu.
‫Und dann stellen wir einfach sicher, dass wir den Anweisungen dieses Filterdelegaten folgen und einen booleschen Wert
‫zurückgeben.
‫Genau das tun wir also.
‫Wir geben true zurück, wenn diese beiden Aussagen wahr sind.
‫Also, wenn das Alter größer oder gleich ist, 20 oder weniger und gleich 30.
‫Vergessen Sie also nicht das Semikolon am Ende.
‫Das ist hier wirklich wichtig.
‫Andernfalls funktioniert dies nicht, da dies im Grunde wie das Erstellen einer Variablen ist.
‫OK, also ist int X gleich drei.
‫Es ist ziemlich dasselbe, was wir hier mit diesen Filterdelegaten machen, aber es
‫ist etwas komplizierter.
‫In diesem Jahr sehen Sie hier also eine anonyme Methode, da sie keinen Namen hat, sich aber im Grunde wie
‫eine Methode verhält.
‫Was wir jetzt tun können, ist, unsere Vertriebenen anzurufen.
‫Und wir können unseren variablen Filter verwenden, damit wir den Filter passieren können.
‫Sie erinnern sich vielleicht an dieses Stück.
‫Die Leute hatten immer diese Struktur, wo man hier einen Titel hatte, man hatte einen Titel, dann musste
‫man die Personenliste weitergeben.
‫Also von Personenobjekten.
‫Rechts.
‫Und dann mussten Sie hier hinzufügen, um zu filtern.
‫Und ich werde einfach meinen Filter verwenden, den ich gerade eingerichtet habe, nämlich diese Filtervariable.
‫Diese Filtervariable ist jetzt also vom Typ Filter Delegate, was für Vertriebene erforderlich ist, denn
‫hier sehen Sie, dass sie den Typ Filter Delegate erfordert.
‫Es ist also wirklich interessant, weil Sie einerseits einfach eine Methode erstellen können, die der Delegatbeschreibung folgt,
‫und sie einfach so verwenden, wie wir sie hier gesehen haben.
‫Sie können aber auch einfach eine Variable erstellen, die eine anonyme Methode mit dem Schlüsselwort Delegate verwendet, wie wir es hier
‫im Speicher innerhalb dieses Filters getan haben, und dann diesen Filter hier verwenden.
‫Das werden jetzt natürlich keine Kinder sein, sondern zwischen 20 und 30 und es werden all die
‫Leute angezeigt, die wir dort haben.
‫Lassen Sie uns diesen Code ausführen und sehen, ob das funktioniert.
‫Und wir sehen hier zwischen 20 und 30, wir haben Anatoliy, der 25 Jahre alt ist, aber sonst niemand.
‫Nun also ein anderer Ansatz einer anonymen Methode, und zwar so, dass wir eine anonyme Methode direkt als Parameter
‫übergeben können.
‫Okay, dann machen wir das ganz schnell.
‫Also nennen wir diese Methode "Personen anzeigen", und diesmal zeige ich einfach alle Personen an, richtig?
‫Also hier alle Leute.
‫Aber jetzt müssen wir vorbeikommen.
‫Sie sehen hier einen Filterdelegaten.
‫Lassen Sie uns also weitermachen und eine anonyme Methode erstellen.
‫Und um das zu tun, müssen wir das Schlüsselwort Delegate genau dort verwenden, um dorthin zu gelangen, und wir müssen
‫natürlich immer noch der gleichen Anweisung folgen.
‫Wir müssen immer noch sicherstellen, dass unser Delegat, den wir übergeben, vom Typ Filter Delegat ist,
‫wenn wir ihn hier oben betrachten.
‫Hier ist also ein Filterdelegierter erforderlich, der benötigt wird, um einen Bullen zurückzugeben, und er brauchte die Person.
‫Kommen wir also zur Person als Parameter P.
‫Aber dann müssen wir natürlich, wie gesagt, auch so etwas wie einen Booleschen Wert zurückgeben.
‫Im Grunde können wir es also einfach so nennen.
‫Hier ist dies also eine sehr komprimierte Codezeile.
‫Hier ist viel los.
‫Wir zeigen Personen an, haben hier aber auch einen Filter.
‫Und dieser Filter, er braucht alle Leute und er kehrt einfach zurück.
‫Stimmt, denn es ist eigentlich egal, welche Person wir hier einsetzen.
‫Das ist es also im Grunde.
‫Ansonsten kannst du es natürlich auch so schreiben, damit es vielleicht etwas lesbarer wird.
‫Dies ist also unsere anonyme Methode, die wir als dritten Parameter übergeben, da wir nur dem Filterdelegaten
‫folgen.
‫Richten Sie sich ein, Sie sehen hier, wir bringen einen Bullen zurück und nehmen eine Person als Perimeter auf.
‫Jetzt sehen Sie also die Macht der Delegierten, weil sie super flexibel sind.
‫Sie wollen wirklich nur, dass Sie einer bestimmten Struktur folgen.
‫Der Rest liegt an dir.
‫Und das gibt Ihnen als Entwickler viel Flexibilität bei der Arbeit mit Delegierten.
‫Gut.
‫Das war also eine kleine Einführung in anonyme Methoden.
‫Sehen wir uns als nächstes Lambda-Ausdrücke an.