Delegāti ir fascinējoši komponenti C# programmēšanā, kas ļauj tev metodes savstarpēji savienot elastīgā un dinamiskā veidā. Šī funkcionalitāte ir īpaši vērtīga, kad tu raksti programmu, kas ir ļoti moduļa un paplašināma. Šajā rokasgrāmatā tu iemācīsies, kas ir Delegāti, kā tie tiek deklarēti un instancēti, un kā tu vari efektīvi izmantot tos, lai tavas programmas būtu skaidrākas un pielāgojamākas.
Galvenās atziņas
- Delegāti ir atsauces uz metodēm, kuras var piešķirt un izsaukt izpildes laikā.
- Tie ir tipizēti un ļauj nodot parametrus vai arī ne.
- Delegāti var tikt savienoti, kas ļauj apvienot vairākas metodes vienā Delegate instancē.
- Notikumu rīkotāji ir īpaši Delegāti, kas tiek izmantoti daudzās lietojumprogrammās, lai reaģētu uz notikumiem.
Solūt pa solim
1. Deklarēt delegātu
Pirmais solis, strādājot ar Delegātiem, ir deklarācija. Tu to novieto piemērotā vietā, parasti zem nosaukumvietas un pirms klases. Izmanto sintaksi delegate [AtgrieztaisVērtējums] [DelegātaNosaukums]([Parametrs]). Mūsu piemērā tas izskatās šādi:

2. Instancēt delegātu
Pēc Delegāta deklarācijas tev ir jāizveido instancē. To dodot vienai Delegātu mainīgajai atbilstošu metodi. Šajā gadījumā ir svarīgi, lai metodes, ko tu piešķir, atbilstu Delegāta parakstam. Mūsu piemērā mēs instancējam savu Delegātu šādi:

3. Izveidot metodi
Tagad tev jādefinē metode, kuru tu iepriekš piešķīri savam Delegātam. Metodei vajadzētu būt tādam pašam parakstam kā Delegātam. Šeit ir vienkāršs piemērs:

4. Izsaukt delegātu
Līdz šim mēs esam deklarējuši un instancējuši Delegātu, taču mēs to vēl neesam izsaukuši. Lai to izdarītu, tev ir jāizsauc Delegāts ar vērtību.
Ja tu palaidīsi programmu, tu redzēsi, ka uz konsoli tiek izvadīta vērtība 12.

5. Delegāts bez parametriem
Delegātiem nav jānāk vienmēr pieņemt parametrus. Tu vari arī deklarēt Delegātu bez parametriem.

6. Savienot delegātus
Īpaši interesanta funkcija Delegātiem ir iespēja tos savienot. To tu vari izdarīt ar += operatoru.
Ja tu palaidīsi programmu, katra savienotā metode tiks izsaukta secīgi un tiks rādīti to rezultāti.

7. Izpratne par tipiem un atgriezeniskajiem vērtējumiem
Delegātiem ir stingra tipizācija. Tas nozīmē, ka Delegāts var piešķirt tikai metodes ar specifisku parakstu. Tu vari arī izmantot atgriezeniskos vērtējumus, ja tu attiecīgi pielāgo metodē parakstu.
Šeit tu vari definēt metodes, kas ļoti vienkārši atdod vērtības.

Kopsavilkums – Ievads C#-Delegātos: Metodes efektīvi savienot
Delegāti ir vērtīgs rīks C#, kas ļauj tev dinamiskā veidā savienot metodes un elastīgi veidot. Ar iespēju tos instancēt, izsaukt un savienot, tie paver daudzas lietojumprogrammu iespējas tavā programmēšanas praksē. Lai pilnībā izmantotu Delegātu potenciālu, ir svarīgi izprast to darbību un izmantot tos savos projektos.
Bieži uzdotie jautājumi
Kādi ir Delegāti C#?Delegāti ir tipi, kas attēlo atsauces uz metodēm ar konkrētu parametru sarakstu un opcionaliem atgriezeniskajiem vērtējumiem.
Kā deklarēt Delegātu?Delegātu deklarē ar sintaksi delegate [AtgrieztaisVērtējums] [DelegātaNosaukums]([Parametrs]).
Vai Delegātam var būt parametri?Jā, Delegātam var būt parametri, vai arī var pastāvēt Delegāts bez parametriem.
Kā izsaukt Delegātu?Delegātu izsauc kā metodi, izmantojot tā instanci ar nepieciešamajiem parametriem.
Ko nozīmē Delegātu savienot?Delegātu savienošanas process ļauj tev savienot vairākas metodes ar Delegātu, tādējādi izsaucot tās secīgi.