c delegate tutorial how instantiate
In diesem Lernprogramm wird anhand einfacher Codebeispiele erläutert, wie Sie einen C # -Delegierten verwenden. Außerdem erfahren Sie mehr über Multicast-Delegierte in C #:
Was sind C # -Delegierte?
In C # ähneln Delegaten Zeigern, die in C ++ verfügbar sind. Grundsätzlich handelt es sich um eine Referenztypvariable, die einen Verweis auf eine andere Methode enthält.
Außerdem kann die Referenz während der Laufzeit nicht geändert werden. Es ist in der System.Delegate-Klasse verfügbar. Ein Delegat wird verwendet, um die Rückruffunktion oder einen Ereignishandler zu handhaben.
Es ist wie ein Zeiger auf eine Funktion und kann mit dem Schlüsselwort delegate gefolgt von der Signatur der Funktion deklariert werden.
=> Lesen Sie hier die gesamte C # -Schulungsserie durch
Die Deklaration des Delegaten bestimmt auch die Methode, auf die der Delegierte verweisen kann, d. H. Es kann sich um eine Referenzmethode handeln, die dieselbe Signatur wie ein Delegierter hat.
Was du lernen wirst:
Instanziieren des Delegierten in C #
Sobald der Delegat deklariert ist, kann er mit dem neuen Schlüsselwort instanziiert werden und muss dann der Methode zugeordnet werden. Genau wie bei einer Methode muss der Ausdruck ein Argument übergeben.
Einen Delegaten aufrufen
Ein Delegat kann wie eine Methode aufgerufen werden.
Beispiel:
class Program { public delegate void methodDelegate(); public static void Main(string() args) { methodDelegate md = new methodDelegate(method); md.Invoke(); } public static void method() { Console.WriteLine('Delegate pointing to method'); } }
Ausgabe
Die Ausgabe des obigen Programms lautet:
Delegieren Sie das Zeigen auf die Methode
Erläuterung
Software zum Herunterladen von Videos von Ihrer Tube
Im obigen Programm haben wir ein Objekt des Delegaten erstellt und es auf die Methode hingewiesen, die wir aufrufen müssen. Dann haben wir invoke () verwendet, um die Methode mit 'delegate' aufzurufen.
Warum müssen wir C # -Delegierten verwenden?
Wir hätten die Methode direkt von unserer Hauptmethode aus aufrufen können, aber warum müssen wir wirklich einen Delegaten verwenden?
Was ist Black-Box-Test mit Beispiel
Delegieren in einfacher Sprache bedeutet einen Vertreter für die Kommunikation zwischen zwei Gruppen. Auch im Programmierkontext spielt es eine ähnliche Rolle. Es wird für Rückrufe verwendet.
Nehmen wir an, wir haben eine langjährige Methode und müssen diesen Lauffortschritt kontinuierlich überprüfen. Dazu verwenden wir einen Rückruf mit einem Delegaten. Dies ermöglicht es uns, die langjährige Methode im Auge zu behalten.
Zum Beispiel:
public class Program { One on = new One(); public static void Main(string() args) { One.generateNumbers(callDelegate); Console.ReadLine(); } public static void callDelegate(int j) { Console.WriteLine('The current random number is :' + j); } } public class One { public delegate void callingDelegate(int j); public static void generateNumbers(callingDelegate cd) { Random rn = new Random(); int i = 0; int j = 0; while (i <10) { j = rn.Next(9999); cd(j); i++; } } }
Die Ausgabe des obigen Programms lautet:
Ausgabe
Die aktuelle Zufallszahl lautet: 1559
Die aktuelle Zufallszahl lautet: 6127
Die aktuelle Zufallszahl lautet: 6639
Die aktuelle Zufallszahl lautet: 3963
Die aktuelle Zufallszahl lautet: 4479
Die aktuelle Zufallszahl lautet: 6898
Die aktuelle Zufallszahl lautet: 1390
Die aktuelle Zufallszahl lautet: 6409
Die aktuelle Zufallszahl lautet: 2629
Die aktuelle Zufallszahl lautet: 5464
Im obigen Programm haben wir einen Delegaten verwendet, um einen Rückruf von der Methode 'generateNumber' zu erhalten, die eine zufällige Ganzzahl für eine bestimmte Iteration generiert. Diese Iteration kann sehr groß sein. Daher wird der Delegat hier verwendet, um jedes Mal einen Rückruf zu erhalten, wenn in der Methode eine zufällige Ganzzahl generiert wird.
Was ist ein Multicast-Delegat in C #?
Ein Delegat kann auf verschiedene Methoden verweisen. Ein Delegat, der auf verschiedene Methoden verweist, wird als Multicast-Delegat bezeichnet. Ein '+' - Zeichen (Operator) wird verwendet, um dem Delegaten eine Funktion hinzuzufügen, und das '-' - Zeichen (Operator) wird verwendet, um alle vorhandenen Funktionen zu entfernen, die dem Delegaten zugeordnet sind.
Ein Multicast-Delegat ruft die Funktionen auf, auf die er verweist, und nur der gleiche Funktionstyp kann zu einem Multicast-Delegaten kombiniert werden. Dies kann verwendet werden, um eine Liste von Methoden zu erstellen, die durch Aufrufen eines einzelnen Delegaten aufgerufen werden müssen.
Schauen wir uns ein einfaches Programm an, um dies zu verstehen:
Programm
public class Program { delegate void IntegerCounter(int n); public static void method_A(int a) { a = a + 5; Console.WriteLine('the value of first method {0}', a); } public static void method_B(int b) { b = b * 5; Console.WriteLine('the value of second method {0}', b); } public static void Main(string() args) { //creating instance of the delegate IntegerCounter x; IntegerCounter y = new IntegerCounter(method_A); IntegerCounter z = new IntegerCounter(method_B); x = y; x += z; x(10); Console.ReadLine(); } }
Ausgabe
der Wert der ersten Methode 5
der Wert der zweiten Methode 50
Im obigen Programm haben wir einen Delegaten IntegerCounter deklariert. Dann haben wir zwei verschiedene Methoden erstellt, die eine bestimmte Operation für den ganzzahligen Wert ausführen. Dann haben wir in der Hauptmethode den Delegaten für beide definierten Methoden initialisiert.
Dann haben wir zuerst das Delegate-Objekt verwendet, um auf die erste initialisierte Delegate-Methode zu verweisen. Danach haben wir das Pluszeichen verwendet, um Multicast-Delegate zu erstellen und auf eine andere Methode zu verweisen. Wenn wir dann einen ganzzahligen Parameter übergeben, erhalten beide Methoden denselben Parameter und werden ausgeführt.
Fazit
Ein Delegat ist ein Zeiger auf eine Funktion. Die Methode, die den Delegaten verwenden soll, muss denselben Parameter und denselben Rückgabetyp haben.
Der Delegat kann einer Funktion ähnlich deklariert und auf ähnliche Weise aufgerufen werden. Ein Multicast-Delegat ist, wenn wir den Delegaten verwenden, um auf mehrere Methoden zu verweisen, und ein Pluszeichen '+' verwendet wird, um Multicast zu verwenden.
=> Entdecken Sie hier die gesamte Reihe von C # -Trainings
Literatur-Empfehlungen
- Debuggen von Selenium-Skripten mit Protokollen (Log4j Tutorial) - Selenium Tutorial # 26
- Effizientes Selenium-Scripting und Fehlerbehebungsszenarien - Selenium-Lernprogramm Nr. 27
- Implementierung unseres ersten WebDriver-Skripts - Selenium WebDriver Tutorial # 10
- WebDriver Gesamte Einrichtung und Installation mit Eclipse - Selenium Tutorial # 9
- Einführung in Selenium WebDriver - Selenium Tutorial # 8
- Generika und Testsuiten erstellen - Selenium Tutorial # 22
- So behandeln Sie Ausnahmen in SoapUI Groovy-Skripten - SoapUI Tutorial # 11
- So aktualisieren Sie den Ausführungsstatus von TestLink-Testfällen per Fernzugriff über Selen - Lernprogramm Nr. 3