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:

delegate void MansDelegāts(int numurs);
C# Delegāti: Elastīgi metodes savienojumi

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:

MansDelegāts delegātaIzvade1 = new MansDelegāts(delegātaMetode1);
C# Delegāti: Elastīgi metožu saistīšana

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:

void delegātaMetode1(int skaitlis) { Console.WriteLine(skaitlis);
}
C# Delegāti: Elastīgi metodes saistīt

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.

C# Delegāti: Elastīgi metožu sasaistīšana

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.

C# Delegāti: Elastīgi metožu sasaistīšana

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.

C# Delegāti: Elastīgas metodes saistīšana

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.

C# Delegāti: Elastīgi sasaistīt metodes

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.