Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 20054|Antwort: 0

[Quelle] Verstehen Sie schnell C# Fortgeschrittene Konzepte (1) Delegierte Delegation

[Link kopieren]
Veröffentlicht am 19.01.2017 15:18:00 | | | |
Ich mache schon lange .NET-Entwicklung und habe kürzlich das Buch "C# Advanced Programming" rezensiert. Ich habe festgestellt, dass viele Probleme, die ich früher zu verstehen schien, aber nicht verstanden habe, tatsächlich langsam untersucht und verstanden werden können.

Deshalb plane ich, einen Blogbeitrag über die "C# Advanced Programming Series" zu schreiben. Es wird auf das Konzept des Buches "C# Advanced Programming" zurückgreifen und auch auf die Blogbeiträge anderer Experten Bezug nehmen, ich hoffe, Sie verstehen das. Wenn etwas nicht stimmt, korrigiere es bitte.

(Außerdem: Dieser Blogbeitrag wird die Grundlagen von Definitionen und Grammatik nicht erklären.) )



Sprechen wir über die Indienststellung.

Delegate wird in .NET weit verbreitet verwendet. Lambda-Ausdrücke, Ereignisse, Anonymitätsmethoden usw. werden enthalten sein (bleiben Sie dran für weitere Blogbeiträge).

Was ist also Anvertrauen?

Laienausdrücklich unterscheiden sich Delegierte nicht von der Spezifizierung von Methoden, außer dass sie das Delegierten-Schlüsselwort angeben müssen und keine Methodenentität besitzen. Man kann es zum Beispiel als Platzhalter betrachten, wenn man Code schreibt, ohne zu wissen, womit man es zu tun hat. Du musst nur wissen, welchen Parametertyp und Ausgabetyp du einführen willst, und diese definieren. Dies ist die im Buch vermittelte Methode, dass die Unterschrift dasselbe bedeuten muss.

Definieren wir eine grundlegende Delegation:





Ausführungsergebnisse:
Siehst du den oben genannten praktischen Ort, den man anvertrauen sollte? NämlichEin Delegierter kann jede Methode mit demselben Eingabeparametertyp und Rückgabetyp ausführen oder sogar eine Methodenwarteschlange mit derselben Signatur.

Müssen also unsere Methodensignaturen (also Import- und Ausgabeparameter) wirklich exakt identisch mit denen des Delegierten sein? Antwort: Nein, wir können Kovarianz und inverse Variation nicht ignorieren.
Lassen Sie uns kurz das Wissen über Kovarianten und Inverter vorstellen.

"Kovarianz" bedeutet, einen Typ verwenden zu können, der stärker abgeleitet ist als der ursprünglich angegebene abgeleitete Typ.
"Inverter" bezeichnet die Fähigkeit, einen Typ mit einem geringeren Ableitungsgrad zu verwenden.
Dann unterliegt auch unsere Kommission Kovarianz und Inverse.

Das bedeutet, dass, wenn ein Delegierter definiert ist, nicht nur exakt dieselbe Signaturmethode der Delegiertenvariable einen Wert zuweisen kann.
Wenn die Parametertabelle einer Methode mit der Delegiertenerklärung übereinstimmt, aber eine abgeleitete Klasse von zurückgibt (die Delegiertenerklärung gibt den Typ zurück), kann die Methode auch dieser Delegiertenvariable zugeordnet werden.
Wenn der Rückgabetyp einer Methode mit der Delegiertendeklaration übereinstimmt, das Argument aber die Vorfahrerklasse des Delegiertendeklarationsparametertyps ist, kann die Methode auch der Delegiertenvariable zugewiesen werden.
Wenn die Parameter und der Rückgabetyp einer Methode den Annahmen in den beiden obigen Zeilen entsprechen, kann die Methode auch der Delegiertenvariablen zugeordnet werden.

Im Folgenden ein einfaches Beispiel für Kovarianten vs. Wechselrichter:

Kovarianz:

Wechselrichter:







Vorhergehend:MFC-Design
Nächster:Wie findet man heraus, in welchem Prozess-PID eine Datei belegt ist
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com