c delegate tutorial how instantiate
Aquest tutorial explica com utilitzar un delegat C # amb l'ajuda d'exemples de codis senzills. També coneixereu els delegats de multidifusió a C #:
Què són els delegats de C #?
A C #, els delegats són similars als indicadors disponibles a C ++. Bàsicament és una variable de tipus de referència que conté una referència a un altre mètode.
A més, la seva referència no es pot canviar durant el temps d'execució. Està disponible dins de la classe System.Delegate. S'utilitza un delegat per gestionar la funció de devolució de trucada o un gestor d'esdeveniments.
És com un punter cap a una funció i es pot declarar mitjançant la paraula clau delegat seguida de la signatura de la funció.
=> Llegiu aquí tota la sèrie de formació C #
La declaració del delegat també determina el mètode que pot fer referència el delegat, és a dir, pot ser un mètode de referència que tingui la mateixa signatura que un delegat.
Què aprendreu:
Delegat d’instància a C #
Un cop declarat el delegat, es pot crear una instància amb la nova paraula clau i, després, cal associar-lo al mètode. Igual que un mètode, l'expressió ha de passar un argument.
Invocació d’un delegat
Es pot invocar un delegat igual que un mètode.
Exemple:
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'); } }
Sortida
La sortida del programa anterior serà:
Delegar assenyalant el mètode
Explicació
serveis web provant preguntes i respostes d’entrevistes
Al programa anterior, hem creat un objecte del delegat i l’hem apuntat cap al mètode que hem d’invocar. A continuació, hem utilitzat l'invoke () per invocar el mètode amb 'delegat'.
Per què necessitem utilitzar el delegat de C #?
Podríem haver trucat al mètode directament des del nostre mètode principal, però per què realment necessitem utilitzar un delegat?
Delegar en un llenguatge senzill significa un representant per a la comunicació entre dos grups. Fins i tot en un context de programació, té un paper similar. S'utilitza per a devolucions de trucada.
Suposem que tenim un mètode de llarga durada i que hem de comprovar que el progrés de l'execució sigui continu. Per fer-ho, fem servir la devolució de trucada mitjançant un delegat. Això ens permet fer un seguiment del mètode de llarga durada.
Per exemple:
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++; } } }
La sortida del programa anterior serà:
Sortida
El número aleatori actual és: 1559
El número aleatori actual és: 6127
El número aleatori actual és: 6639
El número aleatori actual és: 3963
El número aleatori actual és: 4479
El número aleatori actual és: 6898
El número aleatori actual és: 1390
El número aleatori actual és: 6409
El número aleatori actual és: 2629
El número aleatori actual és: 5464
Al programa anterior, hem utilitzat un delegat per obtenir una devolució de trucada del mètode 'generateNumber' que genera un enter aleatori per a una iteració determinada. Aquesta iteració pot ser enorme. Per tant, el delegat aquí s’utilitza per recuperar una trucada cada vegada que es genera un enter aleatori al mètode.
Què és un delegat de multidifusió a C #?
Un delegat pot assenyalar diversos mètodes diferents. Un delegat que apunta a diversos mètodes diferents es coneix com a delegat multidifusió. S'utilitza un signe '+' (operador) per afegir una funció al delegat i el signe '-' (operador) s'elimina qualsevol funció existent associada al delegat.
Un delegat de multidifusió crida a les funcions a què apunta i només es pot combinar el mateix tipus de funcions per formar un delegat de repartiment múltiple. Es pot utilitzar per crear una llista de mètodes que cal invocar trucant a un sol delegat.
Vegem un programa senzill per entendre-ho:
Programa
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(); } }
Sortida
el valor del primer mètode 5
el valor del segon mètode 50
Al programa anterior, vam declarar IntegerCounter delegat. A continuació, vam crear dos mètodes diferents que realitzen una determinada operació sobre el valor enter. A continuació, al mètode principal, vam inicialitzar el delegat per als dos mètodes definits.
Després, primer hem utilitzat l'objecte delegat per assenyalar el primer mètode de delegat inicialitzat i, després, hem utilitzat el signe '+' per delegar multidifusió i apuntar a un altre mètode. Llavors, si passem un paràmetre enter, tots dos mètodes rebran el mateix paràmetre i s'executaran.
Conclusió
Un delegat és un punter cap a una funció. El mètode que utilitzarà el delegat ha de tenir el mateix paràmetre i el mateix tipus de retorn.
quines són les etapes del sdlc
El delegat es pot declarar similar a una funció i també es pot invocar de manera similar. Un delegat de multidifusió és quan fem servir el delegat per assenyalar diversos mètodes i s’utilitza un operador “+” més per utilitzar el multidifusió.
=> Exploreu tota la sèrie de tutorials de formació en C # aquí
Lectura recomanada
- Depuració d’escriptures de Selenium amb registres (Tutorial Log4j) - Tutorial Selenium núm. 26
- Escenaris de scripts i resolució de problemes de Selenium eficients: Tutorial Selenium núm. 27
- Implementació del nostre primer script WebDriver - Tutorial Selenium WebDriver # 10
- Configuració i instal·lació senceres de WebDriver amb Eclipse - Selenium Tutorial # 9
- Introducció a Selenium WebDriver - Tutorial Selenium núm. 8
- Creació de genèrics i proves: Tutorial Selenium núm. 22
- Com gestionar l'excepció en scripts SoapUI Groovy - Tutorial SoapUI núm. 11
- Com actualitzar l’estat d’execució del cas de proves TestLink de forma remota mitjançant Selenium: tutorial núm. 3