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:

delegate void MeinDelegate(int nummer);
C# Delegeerimine: Paindlikud meetodite ühendamine

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:

MeinDelegate delegateAusgabe1 = new MeinDelegate(delegateMethode1);
C# Delegeerib: Paindlikud meetodite sidumine

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:

void delegateMethode1(int zahl) { Console.WriteLine(zahl);
}
C# Delegaadid: Paindlikud meetodite sidumine

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.

C# delegeeritavad: Paindlikud meetodite seondumine

5. Delegate ilma parameetriteta

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

C# Delegeerimine: Paindlikult meetodeid siduda

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.

C# delegaadid: paindlikud meetodite sidumine

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.

C# Delegaadid: Paindlikud meetodite sidumine

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.