Wenn Sie jemals Zeiger in einer Programmiersprache verwendet haben, haben Sie möglicherweise eine Vorstellung von der Referenzierung. C# Delegierte arbeiten genauso wie Zeiger. Genau wie wir die Funktionen mit Zeigern verweisen, können wir Delegierten verwenden, um die Funktion in C# zu verweisen,. Die Delegierten sind absichtlich erstellt, um Rückruffunktionen zu erstellen und Ereignisse hinzuzufügen. Dies bedeutet, dass ein Delegierter entscheiden kann, welche Methode zu welchem Zeitpunkt in C# ausgeführt wird. Delegierte helfen uns, die Funktionen zu verkapulieren und können mehr als zwei Funktionen für ein Solo -Ereignis ausführen. Delegierte haben benutzerdefinierte und Aktionstypen. In diesem Leitfaden haben wir beschlossen, beide Typen und insbesondere den „Aktionstyp“ abzudecken. Beginnen wir mit der C# -Dateierstellung in der Shell, um sich die Delegierten anzusehen.
Beispiel # 01:
Ohne einen Blick auf den benutzerdefinierten Delegierten zu werfen, können wir die Bedeutung des Aktionsdelegierten in C# nicht verstehen. In diesem Beispiel werden wir zuerst den benutzerdefinierten Delegierten diskutieren. Wir haben die "System" -Bibliothek im Code mit dem Schlüsselwort "Verwenden" verwendet. Diese Bibliothek ist ein Muss in jedem C# Code, da wir viele Standard-Verwendungsfunktionen und -anweisungen im C# -Code verwenden können.
Ohne diese Bibliothek wird unser Code für uns nicht verwendet, da er nicht die erforderlichen Ergebnisse zeigt. Wir haben eine neue Klasse mit dem Namen "Test" mit zwei Funktionen initialisiert. Eine dieser Funktionen ist die main () -Funktion von C# Code und es ist ein Muss in jedem Code. Ohne diese Funktion werden keine anderen Teile des C# Code ausgeführt. Eine andere Funktion ist die benutzerdefinierte Funktion „Berechnung“, mit der einige Berechnungen für Variablen durchgeführt werden. Die Ausführung beginnt mit der Main () -Methode.Vorher müssen wir die Erklärung eines benutzerdefinierten Delegiertens beschreiben, der in der ersten Zeile des Klassentests definiert ist.
Wir haben einen Delegierten mit dem Namen "Custom" mit zwei Argumenten des Ganzzahltyps definiert (i.e. x und y), beziehen. Dieser Delegierte ist aus "öffentlichem" Zugangsmodifikator und mit dem Schlüsselwort "Delegate" gefolgt vom Typ "void". Da die Berechnungsfunktion denselben Namen und Argumenten enthält, muss dieser Delegierte die Funktion „Berechnen“ verweisen. In der Main () -Methode haben wir ein Objekt "A" des Delegiertens "benutzerdefiniert" erstellt, um die Funktion "Berechnen" zu verweisen. Um Werte an die Funktion „Berechnen“ zu übergeben, werden wir das Objekt „A“ des benutzerdefinierten Delegiertens (i verwenden.e. 14 und 7.) Wenn ein Wert übergeben wird, wird die Berechnungsfunktion mit diesen Werten ausgeführt. Es gibt 4 Konsole.WriteLine () Funktionsanweisungen werden in der Funktion der Berechnung verwendet, um unterschiedliche Operationen auszuführen (i.e. Die Summe und Subtraktion von 2 Werten, die Multiplikation von 2 Werten und die Teilung von zwei Werten unter Verwendung von x und y.)
Hier geht es um die Verwendung des benutzerdefinierten Delegierten in C#. Lassen Sie uns nun diesen C# -Code im Terminal von Linux mit Hilfe eines C# "MCS" -Kompilers kompilieren. Nach dem Kompilieren erstellt der Compiler eine "EXE" -Datei für die Ausführung. Jetzt müssen wir diese "EXE" -Datei innerhalb des Terminals mit der Anweisung "Mono" verwenden, um unseren Code auszuführen. Es stellt sich heraus, dass der Delegierte wie ein Klassenobjekt auf die Berechnung der Funktion zur Übergabe seiner Werte und zur Berechnung der Summe, der Subtraktion, der Multiplikation und des Abteilungsergebnisses i referenziert wird.e. 21, 7, 98 bzw. 2.
Beispiel # 02:
Der Aktionsdelegate speichert uns davor, den benutzerdefinierten Delegierten im Code zu definieren, und es gibt keinen Wert zurück. Außerdem reduziert es auch die Größe eines Codes. Nehmen wir an, wie wir in diesem Beispielcode einen Aktionsdelegierten verwenden können? Wir haben also hier die gleiche Codestruktur von C# mit der "System" -Bibliothek und der "Test" -Kläufe darin gestartet. Danach haben wir 2 Funktionen hinzugefügt (ich.e. Benutzerdefinierte Berechnungsfunktion und die integrierte Main () -Funktion.)
Innerhalb der Berechnungsfunktion haben wir dieselbe 4 -Konsole verwendet.WriteLine () Funktionsanweisungen zur Berechnung der Summe, Subtraktion, Multiplikation und Teilungswert von Variablen „X“ und „Y“ des Ganzzahltyps. Während die Funktion main () die Initialisierung einer Aktion enthält, delegiert „A“ mit dem Schlüsselwort „Aktion“, gefolgt von den von diesem Delegierten an die Berechnungsfunktion übergebenen Rückgabetypen für die parametrischen Werte, die die Rückgabetypen angeben. Nun wird die Berechnung der Funktion zum Referenz der Aktion "A" delegieren und wir haben sie verwendet, um zwei Werte 7 und 14 an die Funktion „Berechnen“ zu übergeben, ohne sie aufzurufen. Sie können sehen, dass wir keinen Aktionsdelegierten so deklarieren müssen. Sparen wir diesen Code und verwenden Sie ihn bei der Ausführung.
Nach der Zusammenstellung dieses Code und der Ausführung seiner "Exe" -Datei haben wir das gleiche Ergebnis für Summe und Multiplikation erhalten, während wir für Subtraktion und Division ein wenig anders sind. Sowohl benutzerdefinierte als auch Aktionsdelegierte funktionieren ziemlich ähnlich, aber wir müssen zuerst den benutzerdefinierten Delegierten definieren.
Beispiel # 03:
Lassen Sie uns sehen, wie ein Aktionsdelegierter reagiert, wenn wir eine Rückgabeanweisung im Code verwenden. Wir haben also unseren Code aktualisiert und die Funktion berechnen und main () hinzugefügt. Innerhalb des Main () dieses Code haben wir einen Aktion -Delegierter „A“ von zwei Ganzzahlparametern erstellt, um die Berechnung der Funktion zu verweisen. Ein Aktionsdelegierungsobjekt „A“ wird verwendet, um zwei Ganzzahlen an die Berechnung zu übergeben, ohne die Funktion zur Berechnung aufzurufen, und eine Ganzzahl „S“ initialisiert, um das berechnete Ergebnis wieder in die Main zu erhalten ().
Die Konsole.Die Funktion writeline () wurde verwendet, um den zurückgegebenen Wert aus der Funktion zur Berechnung der Funktion auf unserem Shell -Bildschirm anzuzeigen. Innerhalb der Berechnungsfunktion haben wir eine Ganzzahlvariable „Summe“ initialisiert, die die Summe von zwei Werten berechnet, indem zwei Variablen „x“ und „y“ verwendet werden. Nach der Berechnung der Summe haben wir die Variable „Summe“ an die main () -Funktion zurückgegeben. Jetzt erwarten wir, dass es uns einen Fehler bei der Zusammenstellung gibt.
Also nach dem Zusammenstellen des „Delegierters.CS ”-Datei mit dem Compiler von C#, wir haben einen Fehler.
Lassen Sie uns den Code aktualisieren, um die unterschiedliche Verwendung des Aktionsdelegiertens anzuzeigen. Wir haben also eine einfache Main () -Funktion innerhalb der Testklasse hinzugefügt. Wir haben einen Aktionsdelegierten „A“ in ihr initialisiert, gefolgt vom Parameter des String -Typs. Um auf eine String -Variable zu verweisen, müssen wir den Schlüsselwort -Delegierter verwenden, gefolgt vom Namen einer Variablen und dessen Typ in Parametern (i.e. "S".) Die Konsole.Die Anweisung WriteLine () zeigt den Wert einer Zeichenfolge an. Außerhalb der Funktion main () haben wir den Action -Delegierten bezeichnet und ihm einen String -Wert "Hallo Welt" übergeben.
Nach dem Kompilieren und Ausführen unseres Codes wurden unsere Zeichenfolge mit dem Aktionsdelegierten "A" angezeigt.
Abschluss:
Dieser Artikel zeigt das Konzept der Delegierten mit einigen seiner Beispiele. Wir haben die Verwendung und Struktur von benutzerdefinierten Delegierten untersucht, damit wir sie mit den Aktionsdelegierten vergleichen können. Außerdem haben wir einige Beispiele für die Verwendung von Aktionsdelegierten erörtert und erklärt, wie sich die Aktionsdelegierten von den benutzerdefinierten Delegierten unterscheiden, wie sie die Größe eines Codes reduzieren können und wie sie auf die Nutzung der Rückgabeanweisung reagiert.