C# Delegierte durch Programmieren lernen und verstehen | Sandor Maraczy | Skillshare

Playback-Geschwindigkeit


  • 0.5x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 2x

C# Delegierte durch Programmieren lernen und verstehen

teacher avatar Sandor Maraczy, Microsoft Certified Software Developer

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu jedem Kurs
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Eine Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

9 Einheiten (55 Min.)
    • 1. Was ist dieser Kurs?

      1:35
    • 2. Was ist ein Delegierter

      4:12
    • 3. Erstellen eines benutzerdefinierten Delegierten im Code

      5:12
    • 4. Code wächst – ein Beispiel ohne Delegierten

      8:19
    • 5. Refactor zur Verwendung von Delegierten

      5:20
    • 6. Mehrere Delegierte in die Aufrufliste einfügen

      7:34
    • 7. Einmischung delegieren

      5:08
    • 8. Action und Action von T

      8:50
    • 9. Func of T, TResult

      8:35
  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Alle Niveaus

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

47

Teilnehmer:innen

--

Projekte

Über diesen Kurs

Verstehe den Zweck der Verwendung von Delegierten und siehst an, wie mächtig sie sein können, anhand von Beispielen.

Delegierte sind in C# sehr nützlich, aber das Konzept hinter Delegierten ist vielleicht schwer zu verstehen, daher kann für viele C# Entwickler verwirrend sein.

Ich werde dein Leitfaden durch deinen Lernpfad für die Teilnehmer sein und es dir einfach machen, in meinen logisch erstellten Beispielen zu verstehen.

Wenn dir mein Kurs gefällt, kannst du gerne einen Kommentar hinterlassen und mir sagen, was du als nächstes lernen möchtest!

Triff deine:n Kursleiter:in

Teacher Profile Image

Sandor Maraczy

Microsoft Certified Software Developer

Kursleiter:in

Sandor Maraczy is a Microsoft Certified Software Developer. He became passionate about programming and automation in the beginning of college, where he studied Business Information Technology.

He first started to deal with programming in Java and C#, and he always felt, that he is interested in coding in more depth, so beside college he also improved himself at home. He found really good resources online, by a guy called John Sonmez, who inspired him. He learned to code step by step by actually doing it, so he could soon break into the field as a software developer.

He also helped a lot to hiss classmates at college, where he got a lot of compliments for the way he explains basic programming concepts.

Today he is also teaching online, because he believes, that throu... Vollständiges Profil ansehen

Skills dieses Kurses

Technologie Webentwicklung

Kursbewertungen

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%
Bewertungsarchiv

Im Oktober 2018 haben wir unser Bewertungssystem aktualisiert, um das Verfahren unserer Feedback-Erhebung zu verbessern. Nachfolgend die Bewertungen, die vor diesem Update verfasst wurden.

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen bei Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

Transkripte

1. Was ist dieser Kurs?: Hallo, da. Kommierte die lernen und verstehen C scharfe Delegierten durch Codierung Kurs. Mein Name ist Chandler Moral. Jetzt zeigst du dir, was du in meinem Kurs gelernt hast. Warum sollten Sie C scharfe Delegierten lernen. Delegate ist ein äußerst wichtiger Teil aus dem Darknet-Framework und sie werden häufig nach einer Entwicklung verwendet , es kann manchmal die einfachste Lösung für Ihre Probleme sein. Sie müssen nur das Szenario erkennen, wenn Sie es von Lerndelegierten verwenden, Sie werden in der Lage sein, leistungsfähigeren Code zu schreiben, der eine bessere Code-Wiederverwendung Ihrer Software ermöglicht . Er wird sie für Ereignisse nutzen, die ich erst in Zukunft klären werde. Abschnitte von Diskurs und Sie werden sie auch indirekt Van verwenden, zum Beispiel glink Sie Abfragen erstellen oder mit Framework arbeiten, die auf der Bildung von Lambda-Ausdrücken basieren . Am Ende der Partituren, werden Sie wissen, was ein Delegierter ist auf diejenigen, die auf dem Konzept dahinter stehen. Sie werden in der Lage sein, Delegaten zu erstellen und zu verwenden und auch den Zweck zu verstehen, wenn Delegaten nützlich sein können, was ich durch meine logisch größeren und nützlichen Beispiele demonstrieren werde. Sie werden sehen, wie Delegierte Ihnen helfen können, eine aufgerufene Duplizierung in Ihrer Software zu vermeiden und auch , wie Sie das offene Bruttoprinzip nicht verletzen können. Und am Ende werde ich klären, was für ein Aufruf eine Liste ist. Und Tom. können mehrere Delegaten hinzugefügt werden. Also lasst uns direkt hineinspringen und mit mir programmieren, um ein delegierter Meister zu werden. 2. Was ist ein Delegierter: Delegierten in C Sharp ist ein sehr schwieriges Konzept zu verstehen und kann für viele C scharfe Entwickler verwirrend sein . Das ist der Grund, warum ich dieses Thema gewählt habe, um eine Briefing-Verbindung zu geben, die direkt in das Thema springen . Ich nehme an, Sie sind Ihre Familie variable Initialisierung in C scharf. Aber lassen Sie uns nur für ein paar Sekunden zu Ihnen zurücktreten. In den ersten 2 Beispielen müssen wir Wert auf Variablen X handeln, und es ist fertig Achsen vom Typ int und wir weisen sechs als Wert zu essen. Es ist fertig, ist aus, Taibu und wir geben ihm einfach Kraft zu. Einsteckkoffer. Wir haben eine Referenz-Tauchvariable namens O off-Typobjekt, und in diesem Fall erstellen wir eine neue Instanz aus dem Objekttyp, und wir können auf dieses Objekt durch unsere Überfähigkeit auf dem Heap verweisen. Aber was passiert, wenn Sie keine Werte oder referenzierte Objekte halten wollen, aber wir wollen auf Methoden verweisen, und das wird uns zum Konzept der Terra-Tore bringen, denn was ist ein Delegierter? Grundsätzlich ist ein Delegierter ein Typ in C scharf, und ich würde dies mit einem Programm namens I Spy demonstrieren. Dies ist ein einfacher Weg, wie Sie in der Lage waren, den Code zurück in die Zwischensprache oder zurück zu C Sharp zu zerlegen . Und nachdem ich das einfache Projekt aufgebaut hatte, öffnete ich die Binärdateien in I Spy und ich bekam die folgende Ausgabe, wie Sie auf der Folie sehen können. Also im ersten Fall in unserem C scharfen Code, können wir sehen, dass unsere Delegiertendeklaration nur eine Zeile ist. Aber im zweiten Fall, wenn ich vorgehe und dies zu krank zur Zwischensprache spreche, können wir sehen, dass hinter den Kulissen eine Klasse für uns generiert wird. Und diese Klasse erweitert mehr Dykusdelegaten, und das ist die Basisklasse hier. Mal sehen, was, wie ein Delegatdelegat sein kann, tatsächlich ein Funktionszeiger ist, und das bedeutet, dass wir über unseren Delegaten auf Methoden verweisen können. Wir sind in der Lage, auf warme Matador Home-Funktion zu verweisen, und wir sind auch in der Lage, die mehrere Funktionen oder Funktionsgruppe als auch referenziert. Wir können uns auch einen Delegierten als Pipeline vorstellen, sehr können einfach unsere Daten abladen und wir können es von Punkt A nach Punkt B bekommen, und es ist sehr wichtig zu erwähnen, dass diese Punkte eine völlig andere Punkte von unserer Anwendung sein können . Sehen wir uns nun an, wie benutzerdefinierte Delegaten in diesem einfachen Beispiel arbeiten. Wir haben zwei statische Methoden. Sie alle geben void zurück und sie alle nehmen hier String-Parameter. Im ersten Fall haben wir die Lock-zu-Konsolenmethode, die einfach die Nachricht aus der Konsole in der gesperrten, gesperrten Feuermethode schreibt , die die Zeichenfolge in Ihre Datei protokolliert. Wir können diese Methoden nacheinander einbeziehen, ohne Delegaten sehr einfach mit gleichen oder sogar unterschiedlichen Eingaben zu verwenden . Aber wir können einen oder beide von ihnen über einen Delegaten aufrufen, und dafür brauchen wir die folgende Delegatserklärung. Dies ist also eine Delegatdeklaration, und wie Sie sehen können, sieht es wie eine Methodendeklaration aus. Es ist sehr einfach. Wir müssen hier ein Delegate-Schlüsselwort verwenden. Wir haben die Rückkehr Zeit zu vermeiden, weil wir das Schloss zu Konsole oder das Schloss verwenden möchten um Methoden Jahre und sie orator roid Feuer. Dann kommt der Name vom Delegaten , der in diesem Fall mein längerer Delegat sein wird, und dann müssen wir die Parameter D Assigned Methodenwerte vom Kurs schreiben. Wir brauchen auch eine Instanzerstellung, was bedeutet, dass wir eine neue Instanz von diesem Delegatentyp erstellen müssen. Wir sagen, mein längerer Delegierter, mein Delegierter ist neu, mein längerer Delegierter und in den Klammern müssen wir eine Methode schreiben, und diese Methode wird auch die Methode sein, auf die wir verweisen . Also, wo meine Delegate-Variable und wir können ihre sehr leicht aufrufen, wie durch unsere meine Delegate-Variable unter Umgehung Hallo Vered Die String-Eingabe erwähnt . Wir sind in der Lage, die Sperre zu Konsole Methode hier und dieses einfache Programm aufrufen. Wir schreiben eine einzige Zeile in der Konsole, die sagt, Hallo Wort und das ist es. Es ist so einfach, einen benutzerdefinierten Delegaten zu definieren. Sehen wir uns nun an, wie es im Code funktioniert. 3. Erstellen eines benutzerdefinierten Delegierten im Code: Sehen wir uns nun an, wie man gewohnten Delegierungscode definiert. In diesem einfachen Beispiel haben wir zwei statische Methoden, einige zu den Themen Methoden hier. Sie nehmen beide zwei Ins als Parameter, und sie kehren in das Ergebnis der Berechnung zurück. Natürlich überrascht er nicht, wenn wir sie direkt mit fünf und fünf Parametern anrufen . Wir werden 10 bekommen, indem wir einige anrufen, und wir erhalten Null von Corning, Thema als Ergebnis. Also lasst uns versuchen zu klingen, nur um dieses Ufer zu machen. Also, ich meine, zuerst, nennen einige Gras erwähnt fünf und fünf Parameter und im Saab, in fünf fünf Parameter hier ausgetrickst. Und da diese Methoden in Integer zurückkehren, um die rechte Zeile der Konsole zu schreiben, weil sie das Ausgabeergebnis auf der Konsole sehen möchten. Also ist es richtig, weil all das richtige Land hier sehr schnell, und jetzt schießen wir darauf, können wir sehen, dass wir 10 und Null bekommen, wie sie nur erwartet werden. Aber was passiert, wenn ich diese Methoden nicht direkt aufrufen möchte? Aber ich möchte einen Delegaten für die Methode verwenden, weil dies auch sehr einfach zu tun ist, und es ist so passiert, wie wir es früher auf der Folie gesehen haben. Zuerst müssen wir die Deklaration vierziger Jahre delegieren. Also werde ich diese Deklaration zuerst hier in dieser Datei und auch hier im Namensraum machen, damit andere Klassen sie auch verwenden können. Vielleicht später. Und ich schaffe es wirklich hier und schreibt öffentlich. Wir müssen das, was ein Gate-Schlüsselwort und Szenen verwenden. Diese Methoden geben zurück, und wir müssen ein Ende sowie den Rückgabetyp schreiben. Dann müssen wir Delegaten Namen schreiben, der Zahlen Prozess Delegaten in diesem Fall sein wird und dann die Parameter Hier die Referenzmethoden Ansicht verwenden. Die Referenzmethoden sind also diese einige und der Süden möchte direkt für die Delegierung verwenden und sie nehmen zwei ganze Zahlen als Parameter. Also müssen wir schreiben. Ich habe nicht Dank im Schlepptau. Ich höre auch. Also haben wir jetzt unsere Delegate-Deklaration, aber um dies zu verwenden, müssen wir auch instanzieren, dass sie diesen Delegatentyp gegessen hat, genau wie es auf der Folie so ist. Lassen Sie mich erst diese direkte Anrufung hier loswerden. Also würde ich das löschen und ich gespült, initiiere ein neues Objekt von diesem Typ Ihrer Instanz Hier habe ich Sie die Variable del genannt und lassen Sie uns diese Fortsetzung zu neuen Nummern Prozess, delegieren. Und jetzt können Sie sehen, dass dies tatsächlich eine Methode als Ziel nimmt. Und diese Methode muss Parameter eingeben und zurückgeben müssen und als Ergebnisse. Da wir zwei dieser Methoden haben, können wir entweder einige oder das Leiden verwenden. Aber lassen Sie uns das für uns mit einigen versuchen. Also schreibe ich hier einige und Sie können sehen, dass es perfekt entspricht, um es aufzurufen. müssen wir. Er war unser Lieferwille, und wir gehen voran und involviert. Es ist variabel. Nur das Leben. Er würde eine Methode aufrufen und Ereignis fünf übergeben, genau wie wir es zuvor hatten. Natürlich müssen wir es auch dem Konsul ausschreiben, genau wie wir es vorhin geschrieben haben. Und jetzt ein Feuer darauf. Wir kriegen auch 10, genau wie wir es vorher gemacht haben. Denn eigentlich, was wir hier brauchen, ist, dass wir in Ihrem Delegaten hier erstellt haben, und die Instanz diesen Delegaten erstellt hat, und durch Dezell Variable konnten wir hier auf diese eine Nachricht verweisen. Indem wir sie aufrufen und fünf und fünf Parameter übergeben, die auf diese Methode zeigen, könnten wir sie einfach und gehen. Und wir sind auch in der Lage, dies zu ändern, um zu subtrahieren, wenn Sie möchten, indem Sie einige einfach schnell modifizieren, um hier zu subtrahieren. Und jetzt, wenn ich so gut renne, Sie und Sie wissen, als Ergebnis bemerkte ich, dass, als ich einige änderte, um hier zu subtrahieren, ich diese Anrufung hier nicht berührt habe. Also war ich in der Lage, dies zu tun, ohne den Aufruf zu ändern. Vit die fünf und fünf Parameter. Und das ist noch nicht wirklich nützlich, weil Sie vielleicht die Frage stellen, warum ist es nicht genug für uns, diese Methoden hier direkt zu nennen? Warum müssen wir Delegaten hier und große neue Instanz erstellen und sie über diese Variable aufrufen ? Und das werden wir als Nächstes abdecken. 4. Code wächst – ein Beispiel ohne Delegierten: Und nun mal sehen, wie wir den Delegierten wirklich nutzen können. Stellen wir uns vor, dass wir neue Anforderungen haben, anstatt nur diese Methoden durch einen Delegierten zu gehen und das Ergebnis des Rates zu beten. Wir wollen nun in der Lage sein, die Zahlen, den Namen aus, die Methode, die wir für unsere Berechnung verwenden, und die Berechnungsergebnisse in eine Datei zu schauen den Namen aus, die Methode, . Und wir wollen auch, dass dies für unsere zukünftigen Funktionen funktioniert. Das bedeutet, wenn ich die Funktion hinzufügen möchte, die meine Zahlen multipliziert oder dividiert, muss ich dies auch sehr einfach tun können. Also mal sehen, wie es funktioniert. Zuerst werde ich dies aufrufen, ohne den Delegaten zu verwenden. Dann habe ich sehr Fabrik, um den Delegaten zu verwenden, um zu sehen, wie flexibel unser Code sein kann. Beginnen wir damit, indem wir eine Klasse für unsere Funktion erstellen. Da diese Methoden berechnungsbezogene Methoden sind. Wir müssen hier Dysfunktionalität kapseln. Also lassen Sie uns meine Rechnerklasse erstellen. Ich werde neues Glas hinzufügen. Nennen wir das hier und in dieser Klasse meinen Taschenrechner. Ich möchte meine berechnungsbezogenen Methoden aus dem Hauptprogramm heften, also springe ich hier wirklich schnell und basierte diese Methoden. Und ich werde auch das Lernschlüsselwort hier loswerden. Dies bedeutet, dass, um er diese Methoden war. Jetzt müssen wir ein neues Objekt von diesem Typ und im Hauptprogramm erstellen. Wir haben auch unseren Delegierten hier, den wir hier in dieser Akte dekoriert haben. Zuerst werden wir auch eine neue Fünf dafür erstellen. Also weniger Kiste, neue Klassengötter Zahlen Croesus Delegierten hier, und die Klasse wird für uns automatisch hier generiert. Aber wir müssen das loswerden, weil wir hier keinen Kurs brauchen. Keine Luftbasis, dieser Doug eine Erklärung zu dieser Akte. Also mal sehen, wie es funktioniert. Wie bereits erwähnt, müssen wir die Zahlen, den Methodennamen und die Ursache der Toe-Datei protokollieren . Also werde ich dies ändern, um nicht X plus y zurückzugeben, aber ich werde neue Variable vom Typ machen. Und meine echte modifizierte es, dass ich einige Diese zwei Ganzzahlen war und die Ergebnisvariable speichert . Jetzt muss ich den Methodennamen deklarieren. Ich schreibe schrumpfen mit dem Namen und es ist booby, einige sehr einfach und jetzt ein Ausreiten mit Text. Also, das ist richtig. String-Ausgabetext entspricht hier formatierten String. Also schreibe ich String dieses Format. Das ist richtig. Die Zahlen uh Null one de Methodenname ist zu und tun Ergebnis ist drei Jetzt muss ich die Variablen hier fahren Also schreibe ich X und y scheint, das sind die Zahlen, die ich den Methodennamen fahre, der der Methodenname sein kann, und dann fahre ich das Ergebnis jetzt, um diese zu fünf Sie sind richtig Datei hier Wir brauchen These Tamayo Namen Raum hier zu verwenden und wir sind die Upend oder Textmethoden hier alle die Vergangenheit Erste auf dem Bus verwendet werden Oh mein c Laufwerk in den Ergebnissen für Inter So werde ich schnell fertig werden dies von hier und jetzt wir schreibe den Pfad hier, wenn ich gerade kopiert habe und lass uns eine neue fünf dafür erstellen Der Name aus Grund, dass txt Und du musst auch den Inhalt hier schreiben, der wirklich Ausgabetext ist und jetzt der richtige Schritt ist, gebe ich einfach das Ergebnis hier zurück, um dies zu verwenden Idee schnell beteiligt diese Methode Hier habe ich Recht Mein Rechner Auto Geek war neu Mein Rechner da diese Methoden Inna in diesem Typ hier eingekapselt sind . Wir müssen eine neue Instanz erstellen, um sie zu verwenden. Ich bin in Ordnung, Gott, dass einige für mich die gleiche Bar dritt Ansichten früher. Und da diese Methoden zurückkehren und haben Sie Recht, Waffen? Alles klar, schalte wieder hier. Nun, wenn ich das mit dir führe und 10 bekomme, wie wir es vorher gemacht haben. Aber wir haben auch eine Textdatei hier. Wenn ich den Steuerkampf eröffne, kann ich mein Ergebnis sehen. Die Zahl ist auch der Methodenname und das Ergebnis. Was passiert, wenn ich dies auch für die Subjektmethode verwenden möchte? Nicht nur für zwei, eine Methode. Um dies zu tun, müssen wir sehr schnell zu meiner Rechnerklasse zurückkehren. Und wir müssen diese Funktionalität duplizieren, um ein Thema Hackfleisch zu haben Da diese Dateien alle Textmethode upend schreibt einfach die Apfel-Strings ohne Leerzeichen oder ohne neue Zeile. Ivy schnell modifizierte dies hier zu String, die erobert sterben direkt aus mit Text und machen eine neue Zeile danach. Also jetzt lasst uns weitermachen und unser Thema erstellen. Metal Justice erwähnte Tauchkopie fügen Sie dies ein und nennen wir das hier und hier auch subtrahieren . Und es gibt noch eine Modifikation. Wir müssen das stattdessen aus Summierung Exxon Vie Ansicht jetzt sagen X minus y hier und jetzt, wenn ich alles in Ordnung, geht ein rechter Löwenhahn, der fünf und fünf subtrahieren. Und wenn ich laufen würde, würde ich 10 und Null kurz vor Gerechtigkeit vor Jetzt bekommen, wenn ich meine Alberto Bäume sehe, dass Sie sehen können, dass wir in der ersten Zeile Zahlen fünf und fünf haben , einige mit dem Ergebnis von 10 als fünf und fünf, die gleichen Parameter. Und indem wir sie subtrahieren, erhalten wir Null als Ergebnis. Aber war das Problem dabei? Und das Problem ist, dass jedes Mal, wenn wir neue funktionale irgendetwas in der my calculer-Klasse hier erstellen wollen , wir das duplizieren müssen. Zum Beispiel, wenn Sie eine andere Nachricht wollen, ich möchte spielen, müssen wir dies ändern, um zu multiplizieren. Wir müssen hier eine weitere Modifikation vornehmen und Israel, um x time zu sagen. Also, ich höre, wir wachsen diese meine Rechner-Klasse. Dies ist eine sehr schlechte Praxis, weil wir viele außergerichtliche Duplikationen haben und wir auch gegen das offene Close-Prinzip verstoßen. Das Open-Close-Prinzip besagt, dass eine Klasse für Erweiterungen geöffnet werden sollte, aber für Änderungen schließen sollte. Diese Klasse wird für Änderungen nicht geschlossen, da wir die ganze Zeit hier ändern müssen . Lassen Sie uns also Ihren Faktor, um stattdessen Delegaten zu verwenden. 5. Refactor zur Verwendung von Delegierten: Und jetzt lasst uns die Schule berücksichtigen, um die Kernduplikation zu vermeiden. Hier. So sind einige Methode. Hier hat jetzt zwei Parameter X und y und wir sind hart codieren dieses X plus y hier und diese X minus abstrakte Methode und so weiter und so weiter. Und wir wollen das vermeiden, und dafür werden wir den Delegierten nutzen. Anstatt das zu tun, haben wir hier einen weiteren Umfang und dieser Parameter von Ihnen ist vom Abdullah-Tor entfernt. Dies wird unsere Nummern Prozess Delegaten, die wir früher erstellt haben, und wir werden dies del nennen. Also wollen wir hart dieses X plus y hier Materialien sagen Del X und y dann wird das unser Ergebnis hier machen und wir werden sagen, anstatt die einige durch unsere del Variable hart zu codieren. Wir haben eine Eigenschaft namens Methode off Typ Methode Info und Schuh, die wir in der Lage sind, den Namen durch den Namen Eigenschaft hier zu speichern . Also haben wir jetzt auch unseren Methodennamen, Also lassen Sie uns sehen, wie wir dies verwenden können, wenn Sie Methodenprogramm gehen, das CS Sie sehen können, dass dieser Code nicht kompiliert wird, weil wir jetzt die Methode einige mit zwei Parametern aufrufen. Aber die gesunde Materie hat jetzt einen gewissen Paramilitarismus. Also müssen wir voran gehen und ihm ein Objekt geben. Off-Typnummern verarbeiten Delegaten. Also werden wir hier ein neues Objekt zu machen und wir müssen in der Methode V übergeben war vorher. Aber da wir keine Methode haben, möchte ich nur etwas hier eingeben und durch Drücken von Kontrolle und Punkt eine neue Methode generieren und diese Methode wird automatisch für uns erstellt. Sie werden einfach loswerden dieses Werfen nichts gepflanzt Ausnahme. Und bei dieser Methode können wir voran gehen und den Sam von X und Y zurückgeben. Nun, wenn ich das renne, können Sie sehen, dass wir die gleiche Ausgabe bekommen haben, die wir vorher bekommen haben. Wenn ich zu dem Ergebnis gehe, dass txt gibt es auch die gleiche Ausgabe wie wir zuvor gesehen haben. Die Zahlen sind fünf und fünf. Der Methodenname ist etwas und das Ergebnis ist getan Also im Grunde müssen wir nicht Hard Code sind Funktionalität in meiner Rechnerklasse in irgendwelchen von diesen Methoden, wir können diese über den Delegaten aufrufen, so tatsächlich, wenn ich meine Funktion rechts. Diese Tierärzte subtrahieren oder multiplizieren oder andere Methoden, die zwei ganze Zahlen nehmen und Annans zurückgeben . Ich muss dieses Gericht hier nicht mehr duplizieren und diese Akte erweitern. Ich kann das jetzt löschen, und ich kann einfach diese Methode hier mit einigen wichtigen verwenden, was wir jetzt ändern werden, um Zahlen hier zu verarbeiten, weil diese Methode nicht nur das Ergebnis von der Berechnung zurückgibt, also berechnen wir nicht nur, sondern auch Blick auf die aus besteuerten Ihre Datei. Dies wäre ein wenig prägnanter, wenn ich eine längere Klasse verwenden würde, um diese Protokollierungsfunktionalität hier zu machen , nur um es einfach zu machen. Ich glaube es hier vorerst. So möchten wir jetzt unsere Funktionalität mit anderen Berechnungen erweitern. Wir können einfach zu dem Programm zurückkehren, das CS und die Prozessnummern in einem anderen Delegaten aufgerufen hat. Also bin ich ein schnell voran und schreibe Art, die Zahlen verarbeiten. Ich gehe es wirklich auf fünf und fünf, und ich werde ein neues Objekt von diesem Delegatentyp übergeben, und ich werde die Weitergabe des Tauchers dieses Mal nicht anwenden, also im Moment haben wir diese Angelegenheit nicht, aber ich habe schnell generiert, Genau wie wir es vorhin gesehen haben. Und jetzt sind wir in der Lage, das nächste Mal wieder zu kommen. Also höre ich. Also, wenn ich dieses Programm ausführe, werden wir sehen, dass wir 10 und 25 jetzt als Ergebnis bekommen und in unseren Ergebnissen Txt erhalten Sie auch fünf und fünf und 25, wenn wir hier Multiply aufrufen. Also, jetzt könnten wir voran gehen und schreiben die Division oder die Soundtrack Methode sagt, Nun, genau wie die einige und die multiply-Methode. Und wir könnten es schreiben, ohne diesen meinen Rechner Prozess zu berühren, Zahlenfunktion, so dass wir unsere Funktionalität von diesem Mein Rechner Turkle uns erweitern können, indem wir nicht schreiben und duplizieren Gericht hier in der Klasse, sondern an der Stelle aus -Aufruf. Wir können unsere Berechnungsmethoden schreiben, und das ist, was unsere genannte sehr flexibel macht. 6. Mehrere Delegierte in die Aufrufliste einfügen: nun sehen, Lassen Sie unsnun sehen,wie wir mehrere Delegaten zu unserer Aufrufliste hinzufügen können. Ich habe mein Delegate-Demo-Projekt geöffnet, wenn Sie vorher daran arbeiten. Und ich habe hier mein Programmglas um zwei statische Methoden erweitert. Einer heißt Rights Impuls String on, rechts. Einfach D Log-Nachricht aus der Konsole auf einfache Weise. Und der andere heißt Bright Plants History hier drin und steigt die Schnur in Phantasie Warten Sie aus dem Rat. Jetzt werden wir sie durch den Delegierten für diese kleine Demo involviert. Ich wir einfach kommentieren genannt wird, was wir zuvor geschrieben haben, haben eine Pressesteuerung plus k und sehen hier zu gemeinsamen Zwietracht. Draußen schreibe ich eine Bombe, die das Tor leere. Ich erinnere mich an diese Lagerdelegierten, da wir dies für die Protokollierung verwenden werden und es wird eine Bombengenehmigung oder die String-Log-Nachricht hier jetzt an Sie haben . War es Geld, um das vom Kurs zu verlängern? Einfach. Unger entspricht Ihnen Sperren oder Delegierten hier. Eine Nagelperson, richtig? Symbole trinken Jetzt werde ich diese sehr schnell kopieren und lassen Sie mich das in Fantasie ändern. Ich gehe hier und jeder Mensch die richtige Phantasie hier. Wie Sie sich erinnern, müssen wir hier die Tous Variablen aufrufen. Aber für jetzt haben wir wirklich diese Variablen mit dem gleichen String-Eingabeparameter beteiligt. Also Sie rechts String Lug Nachricht gleich wir sehnen uns zu trösten tun das Konsortium Okay, Nun dann ging Durchfall einfach rechts scheinen länger vorbei Lungennachricht. Und ich werde das auch hier länger mit meiner Phantasie machen. Also jetzt, wenn ich dieses Programm ausführen, werden wir bekommen Wir schauen auf die Konsole geschrieben zwei Mal, aber zuerst in einer einfachen und dann in einer ausgefallenen Weise hier. Und wie Sie sehen können, haben wir zwei Instanzen von diesem Delegatentyp erstellt und durch die einfache längere Zeit auf die richtige einfache Zeichenfolge durch unsere Phantasie mehr gezeigt Wir zeigen auf die richtige Vance History Methode Aber wie können wir mehrere Methoden durch nur einen Delegaten, indem Sie die Delegaten zur Aufrufliste hinzufügen? Und das wird sehr einfach zu tun sein und vier Tage real einfach loswerden unsere Anrufung hier und auch von dem ausgefallenen Luxus geschaffen hier und jetzt haben wir nur einen delegierenden Aufenthalt sie ation. Also werde ich diesen längeren Delegaten oder Lager Del nennen, weil Sie hier und jetzt nur eine Variable haben, indem Sie sagen, dass mehr Del Plus gleich gut in der Lage ist, neuen Delegaten zu unserer Aufrufliste hinzuzufügen. Ich schreibe länger neu, Delegate und jetzt übergebst du meine rechte Phantasie hier. Und natürlich wird das nichts tun. Da wir dieses Lager nicht angerufen haben, werden sie so weniger schwächeren Spaziergang variabel. Es war eine längere, lange Nachricht und jetzt feuern wir darauf. Wir werden das Gleiche rausbekommen, das wir vorher bekommen haben. Was nun passiert ist, ist, dass wir nur ein Lager haben. Sie werden hier Initialisierung zeigen wir einfach die rechte Eingabe-Zeichenfolge, aber wir konnten einen neuen Delegaten hinzufügen, der die richtige Phantasie String-Methode zeigt. Also durch diese Laggard l Variablen durch diese eine Variable waren wir dabei, diese Methoden nacheinander hier zu gehen . Und wenn ich eine andere Methode aufrufen möchte, gehe ich einfach weiter und schreibe länger. Del plus entspricht neuen längeren Delegaten und ich kann auch etwas Dummes hier schreiben , wie rechte Zeichenfolge, lesen, die Risiken fragen, einfach würde ich diese Methoden hier und jetzt generieren. Ich schreibe Zeichenfolgenformat Null und unsere Protokollnachricht, und wir haben immer noch nur diesen einen Variablenaufruf hier Dieser Ort delegiert. Also lassen Sie mich das einfach sehr schnell laufen. Jetzt habe ich drei Methoden. Schule durch diesen Fonds Invocation hier. Das ist also das Grundkonzept hinter dem Aufruf. Ehrlich hier. Aber lassen Sie mich auch zeigen, wie wir einen Delegierten löschen oder auf abonnieren, Abonnieren und Abmelden wird wichtig sein. Schlimmer, wenn wir später über Ereignisse reden. So ist es sehr einfach, einen Delegierten zu beantworten , zu schreiben oder zu löschen. Stattdessen, off plus gleich, werden wir einfach minus gleich hier sicher verwenden. Es war kleine Sequels für die Reisschnur mit der Asterix-Methode Unsere Ausgabe wird die 1. 2 Methoden sein , weil es auch noch eine wichtige Sache gibt, die ich dir vorher nicht gezeigt habe, aber ich bin sicher, dass du wissen wirst, wie das funktioniert Wenn ich vorangehe und anstelle von Explosionen gleich, Ich sage nur gleich neue Lager Delegierten Kampf Francis String und ich würde dies ändern, um Explosion gleich, was unser Ausgang sein wird. Also lassen Sie mich das hier sehr schnell ausführen. Und wie Sie sehen können, schreiben wir nicht die einfache Zeichenfolge aus der Konsole. Wir schreiben hier nur die ausgefallene Zeichenfolge und die Zeichenfolge mit Sternchen, weil wir tatsächlich eine neue Instanz aus diesem Blogger-Delegatentyp erstellen und im Moment auf die richtige Symbolzeichenfolge zeigen . Aber in der nächsten Zeile sagten, dass dieses Lager sie variabel gleich einem neuen längeren Delegierten Andrea wies der rechten Phantasie String hier. Sie zeigen also nicht mehr auf die richtige einfache Stream-Methode, sondern auf die richtige France History Methode und zeigen dann auf diese Methode in der nächsten Zeile, wir fügen diesen Delegaten auch die Aufrufliste hinzu. Also diese beiden Methoden hier richtig ausgefallene Saite und rechte Saite mit Asterix fühlen sich beteiligt sein . 7. Einmischung delegieren: in dieser Vorlesung, werde ich Ihr Konzept vorstellen, das manchmal für Anfänger, C scharfe Entwickler verwirrend sein kann . Und dieses Konzept wird Delegaten Inferenz genannt. Delegate-Inferenz ist einfach ein großartiges Feature, das der C-scharfe Compiler uns bietet und wir werden uns hier ein wenig abseits des Platzes ersparen. Also in unserem Multicast-Delegate-Beispiel, was wir früher hatten, haben wir einen Delegaten namens längere Delegate hier erstellt. Und es ist daran erinnern, dass wir diesem Delegaten Methoden zuweisen können, die void zurückgeben und String-Parameter annimmt . Aber bevor wir mehrere Delegaten zuweisen, die Aufrufliste der erste große die neue Instanz von diesem längeren Delegatentyp gold lager del, wir haben neue längere Delegaten geschrieben und wir wiesen auf die richtige einfache String-Methode. Dann sagten wir laggard l plus gleich und wieder brauchen wir t. Instanz aß sie neue laggard Delegaten, die hier auf eine andere Methode verwiesen. Nun, in diesem Fall ist nicht so komplex, wenn wir uns dieses Beispiel ansehen. Aber wenn Sie zu unserer Initialisierung meines Rechners zurückspringen, haben wir diese Prozessnummernmethode aufgerufen und im Suchparameter müssen wir eine neue Instanz von diesem Delegatentyp erstellen und dann auf die Methode einiger zeigen . Und an dieser Stelle wurde die gleiche Steuer ein wenig peinlicher, weil wir als die Frage, warum wir brauchen, um große neue Instanz von diesem Delegierten Typ. Da wir genau wissen, dass diese Prozessnummernfunktion Nummern Prozess Delegator nehmen wird . Aber da wir uns ausdrücken wollen, warum, nach dem einfachsten und einfach wie dies möglich ist, bietet uns der C Sharp Compiler dieses großartige Feature namens Delegate in Frankreich. Wenn Sie sich dieses Beispiel noch einmal ansehen, mache ich eine neue Instanz von diesem längeren Delegatentyp und Delegatentyp in Frankreich macht es möglich, dass ich das hier nicht mehr fahren muss, da der Typ abgeleitet möglich, dass ich das hier nicht mehr fahren muss, wird und das bedeutet, dass der C scharfe Compiler wird es herausfinden . Aber dieser Typ ist und wird eine neue Instanz hinter den Kulissen für uns schaffen. Also, wenn ich einfach voran gehe und das hier lösche, wird unser Code viel einfach sein, äh, denn jetzt sagen wir nicht, dass dieser Laggard Alec ein neuer Lagerdelegat war und dann die Rack-Eingabezeichenfolge hingewiesen hat. Aber wir können voran gehen und schnell erklären, dass wir hier auf diese richtige einfache String-Nachricht zeigen . Delegate Inferenz bedeutet also, dass der Beschlagnahmen-Compiler den Typ herausfinden wird, was er benötigt, um eine neue Instanz zu erstellen. Und dann werden wir auch überprüfen, ob die hier geschriebene Methode mit dieser Deklaration vergleichbar ist . Was wir hier haben und da diese richtige einfache Zeichenfolge ist eine Methode, die eine Zeichenfolge annimmt und nichtig zurückgibt. Es ist absolut perfekt für einen C scharfen Compiler, weil wir durch diesen Lagerdelegaten hier auf diese Arten von Methoden verweisen können. Also können wir jetzt voran gehen und dieses Gericht auch hier schnell ändern. Ich werde diesen Lagerdelegierten hier löschen und wir können sehen, dass sich unsere Kälte perfekt verbindet. Also, wenn ich das hier herum, können Sie sehen, dass wir das gleiche Ergebnis wie früher bekommen haben. Also konzentrieren wir uns gerade jetzt nur auf dies sind setzen Strings hier und die Konsole und wir bekommen das. Drei sind zu sagen, dass wir vorher gekommen sind, denn zuerst zeigen wir nach rechts, scheinen String zu sein, denn zuerst zeigen wir nach rechts, scheinen String zu sein, und dann fügen wir diese beiden Delegaten hinzu, die auf eine andere Methode zeigen, und so werden diese drei Methoden aufgerufen. Also lassen Sie uns jetzt unsere Aufruf hier vereinfacht werden. Wir können auch diese Vidar vorherigen Prozess Nummern Methode Ursache als auch tun. Jetzt müssen wir hier keine neue Instanz mehr anlegen. So können wir das hier sehr schnell loswerden und wir können einige vorbeigehen, die unser Gericht hier viel prägnanter und leichter zu lesen machen . Im Vergleich zu diesem peinlichen Delegierten in Texas Realität die Hälfte hier. Jetzt werden wir das auch loswerden und dass Sie das Programm noch einmal ausführen, nur um sicherzustellen , dass wir alle Funktionen erhalten, die wir früher hatten. Und wie Sie sehen können, drucken 10 und 25 an den Konsul aus. Und wir haben auch diesen Baum Ausgabetexte hier. Also hier gehen Sie, Delegieren in Frankreich, das Konzept, das unseren Code einfacher zu lesen und einfacher zu verwenden, wenn es um Verwendung von Delegierten geht 8. Action und Action von T: In der letzten Vorlesung haben wir gesehen, wie das Konzept aus Delegaten Inferenz unseren Code vereinfachen kann. Und in dieser Vorlesung werden wir sehen, wie wir unseren Code noch einfacher machen können, indem wir die eingebauten Delegatentypen, Action und Action t im Dotnet-Framework verwenden, um es einfach und leicht zu verstehen. Ich würde die Demo in einem neuen Projekt machen, also würde ich hier in Lösung gehen klicken Sie auf Neues Projekt hinzufügen, und ich würde diese Aktion Delegat nennen und dies wird auch eine Ratsanwendung sein. Und ich mache dies auch als Anfang des Projekts hier. Also stelle ich sicher, dass dies dieses Programm laufen wird, das wir laufen. Ich werde das auch mit einem Jahr loswerden, weil wir diese Namensräume im Moment nicht verwenden. Und nun schauen wir uns an, wie man den Building-Action-Delegaten verwendet. Wenn Sie sich also in ihren vorherigen Beispielen erinnern, müssen wir zuerst einen Delegaten deklarieren und dann Instanz, die sie aß, und die Zeichenmethoden dazu. Nehmen wir also an, dass wir jetzt eine benutzerdefinierte Delegaten deklarieren müssen, die wir vorher getan haben, weil wir Methoden zuweisen möchten, die keinen Parameter annehmen und void zurückgeben. Also lasst uns voran und deklarieren schnell Custom Delegate. Wie in unserem vorherigen Beispiel, gehen Sie weiter und schreiben Sie Public Delegate, Vermeiden. Lassen Sie uns diese Aktion gehen, dass ein Tor und es nichts nehmen wird. Und um es zu verwenden, werde ich voran gehen und Recht Action Delegat Nein gleich. Und dank der Delegate-Schlussfolgerung können wir einfach schnell den Methodennamen fahren. Der Methodenname wird Aktion eins sein. Und Sie erinnern sich, indem Sie den Kontrollpunkt drücken, können wir hier eine Methode generieren. Wir werden dieses hier und diese Methode einfach schnell loswerden. Wir sind einfach und einfach raus. Aktion eins wird aufgerufen oder Aktion eins ist beteiligt. Also habe ich wirklich getroffen. Siehst du, wir konstant die richtige Linie, richtig? Aktion man wird stattdessen aus Del aufgerufen werden auch diese Aktion hier und jetzt nennen, Durch den Aufruf dieser Aktion, werden wir sehen, was wir hier haben. Nein, auch richtig. Es ist Consul Red Linie hier, nur um sicherzustellen, dass der Konsul Avant durch Ausführen des Programms verschwinden, wenn ich nicht die Eingabetaste gedrückt habe. Also, wenn ich das durchführe, werden wir sehen, dass wir Action bekommen. Einer wird genannt, aber es wird uns nicht überraschen, weil wir bereits Familie sind. Oder damit haben wir delegierende Freunde, und er hat auch einen benutzerdefinierten Delegierten erklärt, genau wie wir es zuvor getan haben. Wenn Sie jedoch die gleiche Funktionalität wie die Building-Aktion haben möchten, müssen wir keinen benutzerdefinierten Delegaten mehr deklarieren. Und das ist auch sehr einfach. Das einzige, was wir tun müssen, ist, dass wir stattdessen Aktion Delegaten schreiben können, und Sie können sehen, dass dies ein Delegat ist und seine Encapsulate-Methode , die keine Parameter hat und keinen Wert zurückgibt. Es ist ziemlich gut für uns, denn in der Tat ist unsere Aktion eine Methode vollkommen vergleichbar damit . Also sind wir Hitze, geben und richtige Aktion zu oder hat einfach richtige Aktion. Was wir hier in der vorherigen Zeile hatten und ich waren nur gemeinsam diese Linie aus. Also nenne ich diese Aktion und ich gebe unserer Aktion wirklich eine Methode zu, die wir vorher hatten und jetzt ein Feuer auf diesem Programm. Erhalten Sie das gleiche Ergebnis, wie Sie zuvor erhalten haben? Und was wir jetzt nicht tun müssen, ist, dass wir diese Erklärung hier nicht brauchen, also kann ich das hier auch löschen und diese also loswerden von diesem Kurs. Also, wie Sie sehen können, wenn wir weiter gehen, drücken wir uns jetzt sogar einfacher und einfacher jetzt, die eine andere Methode signieren möchten oder vielleicht eine andere Methode für den Aufruf hatten. Eine Liste, die voran geht und Aktion schreiben plus gleich richtige Aktion zu Und wir können eine andere Methode generieren . Wir können jede Methode übergeben, die void zurückgibt und hier keine Parameter hat. So können wir dieses Gold hier handhaben. Jetzt machen wir das hier. Wir werden t zwei Methodenaufrufe bekommen, was wir früher gesehen haben, und jetzt können Sie sehen, wie diese Aktion uns ein wenig kalt ersparen kann und jetzt müssen wir den benutzerdefinierten Delegaten nicht mehr selbst deklarieren . Aber wie funktioniert die Aktion nicht? Also die Aktion aus ist die allgemeine Version von der Aktion hier und wir können Aktion t verwenden wenn wir einen Parameter oder mehrere Parameter haben und die Nachricht selbst muss auch Teoh return void. In diesem Beispiel haben wir einfach die Aktion verwendet, weil wir hier keinen Parameter haben. Aber lasst uns berücksichtigt werden, ist es, einen String-Parameter zu haben und dann können wir Aktion aus der verwenden und sehen, wie es funktioniert. Also lassen Sie uns diese Saiten hier in Neid aufteilen. Verstehst du, warum wir das in einem Moment machen? Ich schreibe String-Text und ich werde dies eine andere Methode machen, ist über String-Parameter ni richtige Aktion zu nehmen und einfach con Decks hier zu koordinieren. Und ich werde das mit der anderen Methode tun, Isabel. Es wird also Aktion eins plus dext sein und nur um die gleiche Funktionalität zu haben, wird unser String-Parameter aufgerufen. Also, wenn ich um das Programm herum, werden wir die gleiche Ausgabe bekommen. Nur haben wir gesehen, nur um es einfacher und prägnanter hier zu machen. Aber im Moment können Sie sehen, dass wir hier tatsächlich einen Compilerfehler haben. Und es liegt daran, dass unsere Methoden jetzt vom Parameter hier haben. Und diese Aktion ist nur kompatibel mit der Methode, die keinen Parameter hat und void zurückgibt . Und wirklich richtig ist, indem Sie die allgemeine Frage aus Aktion verwenden. Die Aktion von D. Also, jetzt, Also, jetzt, weil wir den String-Parameter haben, müssen wir jetzt voran gehen und den generierten I-Parameter hier schreiben, der der Typ sein wird, den der Parameter hat. Also, weil unsere Steuerparameter re String einfach richtige Zeichenfolge hier und diese Dreharbeiten, dass wir eine Aktion off String verwenden. Wir weisen also Methoden zu, die Parameter von diesem Typ haben. In diesem Fall wird ein Parameter aus diesem Typ und wir geben void zurück. Und wie Sie sehen können, verbindet es sich perfekt. Nun, das einzige Problem mit diesem Code ist, dass wir, um Aktion beteiligt zu sein, einen String-Parameter hier übergeben müssen, und dieser Parameter wird aufgerufen. Nun, wenn ich das ausführe, können wir sehen, dass wir das gleiche Ergebnis haben, was wir vorher bekommen, und jetzt können Sie sehen, wie Aktion und Aktion von D die benutzerdefinierten Delegaten hier ersetzen können, weil wir diese Deklaration hier. Wir können dies nur in einer Zeile machen und die Methode auch zugewiesen. 9. Func of T, TResult: Also nach unserer Aktion und Aktion von Tee Beispiel, lassen Sie uns voran und sehen, wie Funktion Delegierten arbeiten. Ich erstelle hier das neue Projekt namens Funk Delegate. Ich habe dies zu meinem Start Ein Projekt gemacht und ich habe auch statische Methoden in diesem Projekt. Hier haben wir konvertieren, um ein zu wickeln und konvertieren in und sie konvertieren eine Zeichenfolge in eine ganze Zahl auf verschiedene Arten. Wir müssen wissen, was das ist? Im ersten Fall geben wir den Wert direkt zurück, ohne zu prüfen, ob die Zeichenfolge konvertiert werden kann oder nicht Und das kann eine Ausnahme auslösen. . Wenn der Strom nicht umgewandelt werden kann, reißen Sie in Gefahr. Im zweiten Fall verwenden wir hier die Stammesteile Methoden. Und was das tut, ist, dass es zuerst überprüft. Wenn dies waren Sie zu konvertieren, kann in eine ganze Zahl konvertiert werden, und wenn es sein kann, dann die Ergebnisvariable, halten wir seinen Wert. Dieses Fragezeichen bedeutet einfach, dass, wenn dieser Zustand wahr ist, die Medien das Ergebnis zurückgeben. Da wir wissen, dass, wenn dies wahr ist, kann der zu konvertierende Wert in eine ganze Zahl konvertiert werden, so dass wir sicher sind, das Ergebnis zurückzugeben, wenn nicht, wir geben Null zurück. Also dieser Code hat eine Ausnahme ausgelöst. Wenn der Wert in Komfort jetzt nicht in eine ganze Zahl konvertiert werden kann, wenn Sie wissen, was diese Methoden sind, haben String-Umfang und haben auch einen Rückgabetyp, und der Rückgabetyp ist in diesem Fall, und für diese Methoden, wir kann die Aktion oder Aktion aus T nicht mehr Szenen für diese Delegaten verwenden. Wir können nur Methoden zuweisen, die void zurückgeben. Und in diesem Fall haben wir Methoden. Lassen Sie uns zurück, wo Sie und das bedeutet, dass wir einen anderen eingebauten Delegatentyp verwenden müssen , der das Funk off TT Ergebnis ist. Wenn ich hier Funk schreibe, können Sie sehen, dass es 17 Überladungen hat. Und das bedeutet, dass, wenn ich zum Beispiel nur einen Typ hier schreibe, dann bedeutet es, dass wir diesem Funk Methoden zuweisen können, solange sie keinen Parameter haben und den Typ zurückgeben, den er hier drin ist. Wenn ich den zweiten Overlord verwendet habe, bedeutet das, dass der erste I-Parameter die Zeit ist, die der erste Parameter haben muss und der zweite ist. Aber die Methode muss zurückkehren, und in diesem Fall müssen Sie diese Überlastung hier verwenden, da wir das melden müssen. Nehmen Sie einen Typ eine Zeichenfolge und sie geben eine ganze Zahl zurück. Also, wenn ich voran gehe und String in Tier schreibe und diesen Konverter Funk nennen, kann ich das einfach gleich machen, um ihr Cover zwei zum Beispiel in eins zu konvertieren . Nun, wenn ich das verwenden möchte, kann ich zum Beispiel einfach Konverter, Funk und übergeben einen Funk und übergeben einen. Und natürlich müssen wir die Rückkehr sehen, wo Sie so gut war die richtige Konsole richtige Zeile hier. Jetzt ein Feuer auf diesem Programm. Sie erhalten eine als Ergebnis, weil man eine Zeichenfolge sehen kann konvertiert werden. Aber wenn ich konvertieren möchte, zum Beispiel ein, dann werden wir hier auf vier Monate Ausnahme bekommen, weil Sie es direkt konvertieren möchten, ohne zu überprüfen, ob es möglich ist oder nicht, und daher in diesem Beispiel können wir die Konvertierung auch verwenden. Das war's hier. Wenn Sie sich also in Zahl konvertiert anmelden, erhalten Sie einfach Null als Ergebnis, und wir werden hier keine Ausnahmen werfen. Das war's also. Grundsätzlich müssen Sie sich nur daran erinnern, dass Sie in den allgemeinen Typparametern mehr Parameter schreiben können . Aber natürlich muss die Nachricht, die Sie diesem Delegaten zugewiesen haben, die gleichen Parameter haben. In diesem Fall müssen wir drei String-eingehende Parameter haben und von Return eine ganze Zahl eingeben. Nun, da wir Familie sind oder wie Funk T Ergebnis funktioniert, können wir hier zurück zu unserem Delegierten Demo-Projekt springen. Und ich werde das als Starterprojekt machen. Und wenn Sie einfach zurück zu diesem, ich meine, ich meine, schließen Sie alle Dokumente und ich werde nur das Programm öffnen, dass CS Und wenn Sie zurück zu unserem Beispiel springen , haben wir Delegierten hier längere Delegierten, die hier leer zurückgibt, damit wir zuweisen können Methoden, die ah, String-Parameter und wiederum void haben Wie kann dies ersetzt werden? Laut der vorherigen Vorlesung können wir dies einfach durch Aktion off t ersetzen. So überprüfen wir, dass verschiedene Delegierte verwendet wird und jetzt bekommen wir Lager. Sie werden es war richtig. Einfache Schnur. Also, um dies zu vereinfachen, können wir einfach die Aktion aus der Zeichenfolge richtig scheint. Einfache Zeichenfolge und die anderen Methoden hier auch Nehmen Sie eine Zeichenfolge und geben Sie void zurück. Es wird perfekt kompilieren. Und jetzt können wir diese Linie auch abseits des Gerichts hier loswerden. Und wenn Sie einen Blick auf diese genannt, dass Gott, dass Prozess Zahlen Nachricht hier auf der Suche Umfang. Wir müssen hineingehen. Delegate Nummern Prozess, Delegieren. Und diese Zahlen Prozess Delegate wird in dieser Klasse hier deklariert. Wie können wir das loswerden? Und jetzt, wo wir wissen, wie der Funk Off t funktioniert, können wir einfach sehen, dass Oh, es hat einen Rückgabetyp von int und muss in Parametern. Wenn es eine Rückgabezeit hat, müssen wir einen Funk benutzen. Also kommen wir nur für einen Moment zu unserem Rechner zurück. Und jetzt hier, anstatt zu sagen, dass wir ein Nummern Prozess Delegaten Video brauchen, sagen Sie einfach, dass Sie eine Funktion brauchen, die in Parameter und haben einen Eintrag Turn Typ , und das wird unser Prozess Funk sein, zum Beispiel. Und wenn Sie zurück zu dem Programm springen, das C s, können wir sehen, dass dieses Gericht perfekt erfüllt. Und jetzt verwenden wir diesen Zahlenprozess Delegaten hier nicht mehr, also können wir einfach voran gehen und diese Klasse loswerden. Also werde ich dieses Jahr sehr schnell löschen und jetzt können Sie sehen, dass wir nicht nur zwei Klassen in diesem Delegate-Demo-Projekt haben . Und da es jetzt mein Starterprojekt ist, kann ich einfach voran gehen und eine Fünf essen, um dieses Programm zu betreiben. Und jetzt können Sie sehen, dass wir das gleiche Ergebnis wie früher bekommen haben. Und ihr Code kann noch einfacher sein, weil wir Teoh keine von den Delegierten hier deklarieren müssen . Und es gibt auch andere Dinge, die wir bemerken müssen, dass unser Gericht nicht nur einfacher wurde , sondern auch. Wenn ich voran gehe und meinen Kurs zu diesen Prozessnummern jetzt bekomme, können wir sehen, dass diese Methode zwei ganze Zahlen und die Funktion haben muss und von dieser Funktion, Behinderung und Funktion Delegat, können wir jetzt sehen, dass Okay, ich muss eine Methode übergeben, die zwei ganze Zahlen hat und in unserem vorherigen Beispiel zurückgibt und endet . Wenn wir Nummern Prozess Delegaten verwendet haben, konnten wir das nicht herausfinden und wir mussten zurück zu dieser Nummer Prozess Delegate Klasse und sehen die Delegate Dekoration. Und ich denke, das kann auch sehr schädlich sein. Viele Male, wenn Sie komplexe Delegatennutzung bei der Entwicklung von Software haben