c delegate tutorial how instantiate
Denne vejledning forklarer, hvordan man bruger en C # -delegeret ved hjælp af enkle kodeeksempler. Du vil også lære om multicast-delegerede i C #:
Hvad er C # delegerede?
I C # svarer delegerede til markører, der er tilgængelige i C ++. Det er grundlæggende en referencetypevariabel, der indeholder en henvisning til en anden metode.
Yderligere kan dens reference ikke ændres i løbet af kørselstiden. Den fås i System.Delegate klasse. En delegeret bruges til at håndtere tilbagekaldsfunktion eller en begivenhedshåndterer.
Det er som en markør til en funktion og kan erklæres ved hjælp af nøgleordssekretæren efterfulgt af funktionens underskrift.
=> Læs gennem hele C # træningsserien her
Erklæringen fra delegaten bestemmer også den metode, der kan henvises af delegaten, dvs. det kan være en referencemetode, der har den samme signatur som en delegeret.
Hvad du vil lære:
Instantiering af delegeret i C #
Når delegaten er erklæret, kan den instantieres med det nye nøgleord, og derefter skal den tilknyttes metoden. Ligesom en metode skal udtrykket passere et argument.
Påkalder en delegeret
En delegat kan påberåbes ligesom en metode.
Eksempel:
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'); } }
Produktion
Outputet fra ovenstående program vil være:
Delegeret peger på metoden
Forklaring
hvad er funktionstest med eksempel
I ovenstående program har vi oprettet et objekt fra delegaten og peget på den metode, som vi har brug for. Derefter brugte vi påkald () til at påkalde metoden ved hjælp af 'delegere'.
Hvorfor skal vi bruge C # delegeret?
Vi kunne have kaldt metoden direkte fra vores hovedmetode, men hvorfor har vi virkelig brug for en delegeret?
Delegeret på simpelt sprog betyder en repræsentant for kommunikation mellem to grupper. Selv i programmeringssammenhæng har det en lignende rolle. Det bruges til tilbagekald.
Lad os antage, at vi har en langvarig metode, og vi er nødt til at kontrollere løbende fremskridt kontinuerligt. For at gøre det bruger vi tilbagekaldelse ved hjælp af en delegeret. Dette giver os mulighed for at holde styr på den langvarige metode.
For eksempel:
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++; } } }
Outputet fra ovenstående program vil være:
sql interviewspørgsmål med svar pdf
Produktion
Det aktuelle tilfældige tal er: 1559
Det aktuelle tilfældige tal er: 6127
Det aktuelle tilfældige tal er: 6639
Det aktuelle tilfældige tal er: 3963
Det aktuelle tilfældige tal er: 4479
Det aktuelle tilfældige tal er: 6898
Det aktuelle tilfældige tal er: 1390
Det aktuelle tilfældige tal er: 6409
Det aktuelle tilfældige tal er: 2629
Det aktuelle tilfældige tal er: 5464
I ovenstående program brugte vi en delegeret til at få et tilbagekald fra 'genererNummer' -metoden, der genererer et tilfældigt heltal for en given iteration. Denne iteration kan være enorm. Derfor bruges delegaten her til at få et opkald tilbage hver gang der genereres et tilfældigt heltal i metoden.
Hvad er en multicast-delegat i C #?
En delegeret kan pege på flere forskellige metoder. En delegeret, der peger på flere forskellige metoder, er kendt som en multicast-delegat. Et “+” tegn (operator) bruges til at tilføje en funktion til delegaten, og “-“ tegnet (operator) bruges til at fjerne enhver eksisterende funktion, der er knyttet til delegaten.
En multicast-delegat kalder de funktioner, den er peget på, og kun den samme type funktioner kan kombineres for at danne en multi-cast-delegat. Dette kan bruges til at oprette en liste over metoder, der skal påkaldes ved at ringe til en enkelt delegat.
Lad os se på et simpelt program for at forstå dette:
Program
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(); } }
Produktion
værdien af den første metode 5
værdien af anden metode 50
I ovenstående program erklærede vi en delegeret IntegerCounter. Derefter oprettede vi to forskellige metoder, der udfører en bestemt operation på heltalets værdi. Derefter initialiserede vi i hovedmetoden delegeret til begge de definerede metoder.
Derefter brugte vi først delegatobjektet til at pege på den første initialiserede delegatmetode, og derefter brugte vi '+' - tegnet til multicastdelegeret og pegede på en anden metode. Så hvis vi sender et heltalsparameter, modtager begge metoder den samme parameter og udføres.
Konklusion
En delegeret er en markør til en funktion. Metoden, der skal bruge delegaten, skal have den samme parameter og returtype.
Delegaten kan erklæres lig en funktion og kan også påberåbes på samme måde. En multicast-delegat er, når vi bruger delegaten til at pege på flere metoder, og en plus '+' -operator bruges til at bruge multicast.
=> Udforsk hele serien af C # -træningsvejledninger her
Anbefalet læsning
- Fejlfinding af selen-scripts med logfiler (Log4j-tutorial) - Selen-tutorial # 26
- Effektiv Selen Scripting og fejlfinding af scenarier - Selen Tutorial # 27
- Implementering af vores første WebDriver Script - Selenium WebDriver Tutorial # 10
- WebDriver hele opsætningen og installationen med Eclipse - Selenium-tutorial # 9
- Introduktion til Selen WebDriver - Selen Tutorial # 8
- Oprettelse af generik og testuites - Selen Tutorial # 22
- Sådan håndteres undtagelser i SoapUI Groovy Scripts - SoapUI Tutorial # 11
- Sådan opdateres TestLink Test Case Execution Status eksternt via Selen - Tutorial # 3