Delegates on põnevad ehitusplokid C#-programmeermises, mis võimaldavad sul meetodeid paindlikul ja dünaamilisel viisil siduda. See funktsionaalsus on eriti väärtuslik, kui kirjutad programmi, mis on väga modulaarne ja laiendatav. Selles juhendis õpid, mis on Delegates, kuidas neid deklareerida ja instantsiseerida ning kuidas neid tõhusalt kasutada, et muuta oma programmid selgemaks ja kohandatavaks.
Olulisemad järeldused
- Delegates on viidatud meetoditele, mis võivad jooksu ajal olla määratud ja kutsutud.
- Need on tüpiseeritud ja võimaldavad edastada parameetreid või ka mitte.
- Delegates võivad olla seotud, mis võimaldab mitmeid meetodeid ühesainsas delegate'i instantsis kokku võtta.
- Ürituste töötlejad on spetsiaalsed delegates, mida kasutatakse paljudes rakendustes sündmustele reageerimiseks.
Samm-sammuline juhend
1. Delegates deklareerimine
Esimene samm Delegates'iga töötamisel on deklareerimine. Sa paigutad selle sobivasse kohta, tavaliselt nimede ruumi alla ja klassi ette. Kasuta süntaksit delegate [tagastatav väärtus] [DelegateName]([Parameeter]). Meie näites näeb see välja nii:

2. Delegates instantsiseerimine
Pärast Delegates'i deklareerimist pead looma instantsi. Seda teostatakse, kui määrad delegate-muutujale meetodi. Siinkohal on oluline, et meetodid, mille sa määrad, vastaksid delegate'i allkirjale. Meie näites instantsiime meie delegate'i järgmiselt:

3. Meetodi määramine
Nüüd pead määrama meetodi, mille sa eelnevalt oma delegate'ile määrasid. Meetod peaks olema sama allkirjaga nagu delegate. Siin on lihtne näide:

4. Delegate'i kutsumine
Kuni praeguseni oleme delegate'i küll deklareerinud ja instantsiseerinud, kuid me pole seda veel kutsunud. Selleks pead sa kutsuma delegate'i väärtusega.
Kui sa programmi käivitad, näed, et väärtus 12 väljastatakse konsoolile.

5. Delegate ilma parameetriteta
Delegates ei pea alati parameetreid aktsepteerima. Sa saad ka deklareerida delegate'i ilma parameetriteta.

6. Delegates'ide ahelamine
Eriti huvitav omadus Delegates'idest on nende ahelamise võimalus. Seda saad teha =+ operaatoriga.
Kui sa programmi käivitad, kutsutakse kokku igasugune seotud meetod ja nende tulemused kuvatakse.

7. Arusaamine tüüpide ja tagastusväärtuste kohta
Delegates on tugevasti tüpiseeritud. See tähendab, et delegate saab määrata ainult meetodeid, millel on konkreetne allkiri. Sa saad ka tagastusväärtusi kasutada, kui kohandad meetodi allkirja vastavalt.
Siin saad määrata meetodeid, mis lihtsalt tagastavad väärtusi.

Kokkuvõte – Sissejuhatus C#-Delegates'isse: Meetodite tõhus sidumine
Delegates on väärtuslik tööriist C#-is, mis võimaldab sul meetodeid dünaamiliselt siduda ja paindlikult kujundada. Võimalusega neid instantsiseerida, kutsuda ja ahelama panna, avavad nad sulle palju rakendamisvõimalusi sinu programmeerimistavas. Delegates'ide täieliku potentsiaali kasutamiseks on oluline mõista nende toimimist ja rakendada neid oma projektides.
Tihti küsitud küsimused
Mis on Delegates C#-is?Delegates on tüübid, mis esindavad viiteid meetoditele teatud parameetrite loendiga ja valikuliste tagastusväärtustega.
Kuidas deklareerida delegaat?Delegaat deklareeritakse süntaksiga delegate [tagastatav väärtus] [DelegateName]([Parameeter]).
Kas delegaadil võivad olla parameetrid?Jah, delegaadil võivad olla parameetrid, või võib ka eksisteerida delegaat ilma parameetriteta.
Kuidas kutsuda delegaadiga?Delegaat kutsutakse nagu meetod, kasutades tema instantsi vajalike parameetritega.
Mis tähendab delegaatide ahelamine?Delegaatide ahelamine võimaldab sul siduda mitu meetodit ühte delegaati, nii et neid kutsutakse järjestikku.