c delegate tutorial how instantiate
Acest tutorial explică modul de utilizare a unui delegat C # cu ajutorul exemplelor de cod simplu. Veți afla, de asemenea, despre delegații Multicast în C #:
Ce sunt delegații C #?
În C #, delegații sunt similari cu indicii disponibili în C ++. Este practic o variabilă de tip referință care conține o referință la o altă metodă.
În plus, referința sa nu poate fi modificată în timpul timpului de rulare. Este disponibil în clasa System.Delegate. Un delegat este utilizat pentru a gestiona funcția de apel înapoi sau un gestionar de evenimente.
Este ca un pointer către o funcție și poate fi declarat folosind cuvântul cheie delegat urmat de semnătura funcției.
=> Citiți întreaga serie de formare C # aici
Declarația delegatului determină, de asemenea, metoda care poate fi referită de delegat, adică poate fi o metodă de referință care are aceeași semnătură ca un delegat.
Ce veți învăța:
Instantierea delegatului în C #
Odată ce delegatul este declarat, acesta poate fi instanțiat cu noul cuvânt cheie și apoi trebuie să fie asociat cu metoda. La fel ca o metodă, expresia trebuie să transmită un argument.
Invocarea unui delegat
Un delegat poate fi invocat la fel ca o metodă.
Exemplu:
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'); } }
Ieșire
Ieșirea programului de mai sus va fi:
Delegați indicând metoda
Explicaţie
diferența dintre așteptarea implicită și explicită în seleniu
În programul de mai sus, am creat un obiect al delegatului și l-am îndreptat către metoda pe care trebuie să o invocăm. Apoi am folosit invoke () pentru a invoca metoda folosind „delegate”.
De ce trebuie să folosim delegatul C #?
Am fi putut apela metoda direct din metoda noastră principală, dar de ce trebuie cu adevărat să folosim un delegat?
Delegat într-un limbaj simplu înseamnă un reprezentant pentru comunicarea între două grupuri. Chiar și într-un context de programare, are un rol similar. Este folosit pentru apeluri de apel.
cum se deschide fișierul SWF pe Windows 7
Să presupunem că avem o metodă de lungă durată și trebuie să verificăm continuu progresul rulării. Pentru a face acest lucru, folosim callback folosind un delegat. Acest lucru ne permite să urmărim metoda de lungă durată.
De exemplu:
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++; } } }
Ieșirea programului de mai sus va fi:
Ieșire
Numărul aleatoriu actual este: 1559
Numărul aleatoriu actual este: 6127
Numărul aleatoriu actual este: 6639
Numărul aleatoriu actual este: 3963
Numărul aleatoriu actual este: 4479
Numărul aleatoriu actual este: 6898
Numărul aleatoriu actual este: 1390
Numărul aleatoriu actual este: 6409
Numărul aleatoriu actual este: 2629
Numărul aleatoriu actual este: 5464
În programul de mai sus, am folosit un delegat pentru a obține un apel invers din metoda „generateNumber” care generează un număr întreg aleatoriu pentru o iterație dată. Această iterație poate fi imensă. Prin urmare, delegatul de aici este folosit pentru a primi un apel înapoi de fiecare dată când este generat un număr întreg aleatoriu în metodă.
Ce este un delegat Multicast în C #?
Un delegat poate indica mai multe metode diferite. Un delegat care indică mai multe metode diferite este cunoscut ca delegat multicast. Un semn „+” (operator) este utilizat pentru a adăuga o funcție delegatului, iar semnul „-„ (operator) este utilizat pentru a elimina orice funcție existentă atașată delegatului.
Un delegat multicast apelează funcțiile către care este indicat și numai același tip de funcții pot fi combinate pentru a forma un delegat multi-cast. Aceasta poate fi utilizată pentru a crea o listă de metode care trebuie invocate apelând un singur delegat.
Să aruncăm o privire la un program simplu pentru a înțelege acest lucru:
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(); } }
Ieșire
valoarea primei metode 5
valoarea celei de-a doua metode 50
În programul de mai sus, am declarat delegat IntegerCounter. Apoi am creat două metode diferite care efectuează o anumită operație asupra valorii întregi. Apoi, în metoda principală, am inițializat delegat pentru ambele metode definite.
Apoi am folosit mai întâi obiectul delegat pentru a indica prima metodă delegată inițializată și după aceea, am folosit semnul „+” pentru a delega multicast și a indica o altă metodă. Apoi, dacă trecem un parametru întreg, ambele metode vor primi același parametru și vor fi executate.
Concluzie
Un delegat este un indicator către o funcție. Metoda care va folosi delegatul trebuie să aibă același parametru și același tip de returnare.
Delegatul poate fi declarat similar cu o funcție și poate fi, de asemenea, invocat în mod similar. Un delegat multicast este atunci când folosim delegatul pentru a indica mai multe metode și un operator plus „+” este utilizat pentru a utiliza multicast.
=> Explorați întreaga serie de tutoriale de instruire C # aici
Lectură recomandată
- Depanarea scripturilor Selenium cu jurnale (Tutorial Log4j) - Tutorial Selenium # 26
- Scenarii eficiente cu scripturi și depanare Selenium - Tutorial Selenium # 27
- Implementarea primului nostru script WebDriver - Selenium WebDriver Tutorial # 10
- WebDriver Întreg instalare și instalare cu Eclipse - Selenium Tutorial # 9
- Introducere în Selenium WebDriver - Tutorial Selenium # 8
- Crearea de generice și teste - Tutorial Selenium # 22
- Cum să gestionați excepția în scripturile SoapUI Groovy - Tutorialul SoapUI # 11
- Cum se actualizează de la distanță starea de execuție a cazului de testare TestLink prin seleniu - Tutorial nr. 3