O modalitate ușoară de a transmite o funcție ca argument la c # este delegarea acțiunii-t, a unui notebook

Dacă nu sunteți gata să se scufunde în adâncimi de programare funcționale (care este oportunități remarcabile descrise aici) sau doar în căutarea pentru modul cel mai simplu pentru a trece o funcție ca argument pentru o altă funcție, va în mod ideal potrivit delegatului de acțiune .







Ce este și de ce? De obicei, funcția devine sub formă de parametri de intrare, sunt argumente, doar date sau clase specifice. Apoi, ea face ceva cu ei și, în cazul unui aranjament de succes de stele, poate chiar să returneze anumite rezultate ale lucrării sale la codul de apel. În mod obișnuit, această funcție realizează repetiții de cod care efectuează operații pe date. Dar bucățile pot fi repetate, inclusiv apelul unor funcții diferite conform unei anumite scheme.

De ce nu face această bucată de cod într-o altă funcție, transmite-l cu funcții diferite, care sunt operații repetitive, cum ar fi parametrul de intrare sau de unul dintre parametrii de intrare necesare pentru a efectua? Standard C # abordare implică crearea unei descrieri speciale a acestei funcții - delegat. Dar, în cazurile simple, puteți utiliza standardul delegat descriere-Acțiune.







Una dintre sarcinile tipice ale dezvoltatorului C # este de a executa interogări împotriva bazei de date. Pentru a executa o interogare în baza de date utilizând OleDb, trebuie cel puțin să creați și să deschideți o conexiune, să creați un obiect al comenzii OleDbCommand. În același timp, conexiunea la baza de date poate exploda în timpul funcționării și nu există nicio modalitate simplă de verificare a stării sale - adică este foarte fiabil să creați și să o deschideți / închideți din nou de fiecare dată. Pentru a automatiza o astfel de rutină, puteți scrie această funcție utilizând acțiunea

După aceea, într-un alt loc, putem folosi funcția de declarare ca

Și spuneți-o după cum urmează

Și repetați acest lucru într-o multitudine de locuri cu multe funcții

Delegat de acțiune este destinat utilizării cu valori non-returnate void-funcții și are mai multe opțiuni cu un număr diferit de parametri de până la 10. Dacă totuși trebuie să returnați o valoare, puteți utiliza delegatul standard Func sau scrie-ți propriul.

Navigare după înregistrări

dar cum rămâne cu parametrii funcției someDatabaseFunction.

Delegatul de acțiune este destinat utilizării cu valori de returnare a funcțiilor void și are mai multe variante cu un număr diferit de parametri de până la 10. Dacă totuși trebuie să returnați o valoare, puteți utiliza delegatul standard Func sau puteți scrie propriul dvs..

Asta am nevoie. Mulțumesc.







Trimiteți-le prietenilor: