Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 29284|Răspunde: 1

[Sursă] Introducere în delegații C# (delegat, Acțiune, Func, predicat)

[Copiază linkul]
Postat pe 09.04.2018 14:57:15 | | |

Un delegat este o clasă care definește tipul de metodă astfel încât să poată fi transmisă ca argument către o altă metodă. Un eveniment este o comisie specială.

1. Declarația de încredințare

(1). delegare

        delegat

   Delegate are cel puțin 0 parametri și un maxim de 32 de parametri și nu poate avea valoare de retur sau poate specifica un tip de valoare de retur.

   De exemplu, delegat public int MethodtDelegate(int x, int y); Indică faptul că există doi parametri și returnează un tip int.

(2). Acțiune

       Action este un delegat generic fără valoare de returnare.

Acțiunea reprezintă un delegat fără parametri și fără valoare de returnare

Action<int,string> indică un delegat cu un parametru intrant int și fără valoare de retur pentru șirul

  Action<int, string, bool> indică un delegat cu parametrii de intrare int, string, bool fără valori de returnare

       Action<int, int, int, int> înseamnă că au trecut 4 parametri de tip int și nu există o valoare returnată

Acțiunea are cel puțin 0 parametri și un maxim de 16 parametri, fără valoare de returnare.

Exemplu:



(3). Func

Func este un delegat generic cu o valoare de returnare

Func<int> înseamnă un delegat fără parametri și returnează o valoare int

Func<object, string,int> reprezintă un delegat cu parametrul de intrare ca obiect, iar șirul returnează o valoare int

Func<object, string,int> reprezintă un delegat cu parametrul de intrare ca obiect, iar șirul returnează o valoare int

Func<T1,T2,,T3,int> reprezintă un delegat cu parametrul de intrare T1, T2, ,T3 (generic) care returnează o valoare int

Func are cel puțin 0 parametri și un maxim de 16 parametri, care sunt returnați conform valorii de returnare generice. Trebuie să existe o valoare de returnare, nu nulă


Exemplu:




(4) .predicat

predicatul este un delegat generic care returnează un tip bool

<int> predicatul reprezintă un delegat cu parametrul de intrare int returnând bool

Predicatul are și un singur parametru, iar valoarea de returnare este fixată la bool

Exemplu:







Precedent:Persistența mesajelor rabbitMQ Queue Queue [cu cod sursă]
Următor:Rezumatul informațiilor despre ActiveMQ și RabbitMQ
Postat pe 17.12.2019 19:42:23 |
Am o întrebare. Am scris prea mult js și m-am obișnuit cu funcțiile de callback.

Apoi Func a fost folosit ca parametru. Iar acest Func vreau să-l execut asincron. Dacă găsești răspunsuri, poți pune Func în Task.Run
A schimbat rapid ID-ul firului.

Și am folosit în mod jucăuș Func<string,Task<string>> ca să pot aștepta funcția direct, dar am descoperit că nu a schimbat cu adevărat id-ul firului.
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com