Delegaatide ja sündmuste erinevus C # -s

Peamine erinevus - delegaadid vs sündmused C #
 

C # on Microsofti välja töötatud programmeerimiskeel. See toetab struktureeritud programmeerimist ja objektorienteeritud programmeerimist. Delegaate ja sündmusi kasutatakse sündmusepõhiseks programmeerimiseks C # -s. Delegaat on tüübi suhtes ohutu meetodi osutaja. Graafilise kasutajaliidese (GUI) rakenduses on nuppe jne. Kui nupule klõpsatakse, toimub mingi toiming. Neid toiminguid nimetatakse sündmusteks. Näiteks käivitab veebilehe värskendamine lehe laadimise sündmuse. Selles artiklis käsitletakse erinevust delegaatide ja C # sündmuste vahel. võtme erinevus delegaadi ja C # sündmuse vahel on see delegaat on viide meetodile, samal ajal kui sündmus on seotud sündmuse käitlejaga, kes kasutab esindajat. Kui sündmus aset leiab, saadab see delegaadile signaali. Seejärel täidab delegaat vastava funktsiooni. Seega sõltuvad kõik üritused delegaatidest.

SISU

1. Ülevaade ja peamised erinevused
2. Mis on delegaadid C # -s
3. Mis on sündmused C # -s
4. Delegaatide ja C # sündmuste sarnasused
5. Kõrvuti võrdlus - delegaadid vs sündmused tabelis C C #
6. Kokkuvõte

Mis on delegaadid C # -s?

C # -s esindajad sarnanevad teiste programmeerimiskeelte, näiteks JavaScripti, tagasihelistamise funktsioonidega. Tagasihelistamise funktsioonid määratakse käitustõmbe ajal. Need pakuvad funktsioone, mida saab vastavalt vajadusele sisse ja välja lülitada. Sama saab rakendada C # delegaatide abil. C # -s osalejad lahutavad helistaja ja kutsutud funktsiooni. Seetõttu vähendab see rasket sidurit.

.NET-raamistik liigitatakse tüübid kahte kategooriasse. Need on väärtuse tüübid ja viitetüübid. Struktuur on näide väärtuse tüübist. Klass on võrdlustüübi näide. Delegaate nimetatakse ka tüüpideks. Meetodi viite hoidmiseks kasutatakse esindajat. Need on tüübi jaoks ohutud osutid. Delegeeritud tuletatakse süsteemist System.Delegate. Delegaadi deklaratsioon sarnaneb meetodi deklaratsiooniga, kuid sisaldab märksõna 'delegaat'. Delegaadi süntaks on järgmine. delegaat. Tagastamisviis deklareerib tagastatava väärtuse meetodi järgi. Seda kutsub delegaat. Parameetrite loend määratleb meetodi jaoks vajalikud parameetrid. Vaadake delegaatidega allpool olevat programmi.

Joonis 01: C # Delegaatidega programm

Ülaltoodud programmi kohaselt on meetodid calSquare ja calCube sarnased deklareeritud esindajale. Põhiprogrammis omistatakse muutuja cal funktsioonile calSquare. Nüüd osutab cal calSquare'i meetodile. Väärtuse ületamisel tagastatakse ruutväärtus ja prinditakse ekraanile. Jällegi, cal omistatakse calCube-meetodile. Nüüd osutab cal calCube-meetodile. Väärtuse edastamisel tagastatakse kuubi väärtus ja prinditakse ekraanile. Sama delegaati kasutatakse erinevate meetodite viitamiseks. Seetõttu suurendab see programmi paindlikkust.

Mis on sündmused C # -s?

Rakenduses võib olla klahvivajutusi, nuppude klõpsasid ja hiire liigutusi. Kui need aset leiavad, on sündmus tõusnud. Kui esitamisvormis vajutatakse nuppu Edastamine, tõstetakse nupp_click () sündmus tagaplaanile. Sündmus kutsub seotud funktsiooni käivitama. Kui sündmus aset leiab, vastab rakendus sellele. Ürituste käsitlemise programmis on kaks osa. Väljaandja sisaldab sündmuste määratlust ja on delegeeritud. Abonent võtab sündmuse vastu ja annab sündmuse käitleja.

Sündmuse deklaratsioon on sündmus; Sündmuse deklaratsiooni tüüp peab olema delegaadi tüüp ja delegaat peab olema sama ligipääsetav kui sündmus ise. Sündmuse nimi peaks olema kehtiv C # nimi.

Joonis 02: C # Ürituste programm

Ülaltoodud programmi kohaselt luuakse delegaat ja sündmus. Klassis Arvuta on meetod kahe numbri lisamiseks. Kui leitakse paaritu arv, toimub sündmus. See on sündmusOddNumber (). Põhimeetodi korral kutsub sündmusekäitleja eventOddNumber delegaadi. Lõpuks täidab delegaat selle meetodi.

Milline on delegaatide ja sündmuste sarnasus C # -s??

  • Nii delegaadid kui ka sündmused C # -s on seotud sündmustepõhise juhtimisega

Mis vahe on delegaatidel ja üritustel C #?

Delegaadid vs sündmused C # -s

Delegaat on viitetüüpi muutuja, mis sisaldab viidet meetodile. Sündmus on delegaadi tüüpi klassiliige, mida objekt või klass kasutab teistele objektidele teatise andmiseks sündmuse toimumise kohta.
 Märksõna
Delegaat deklareeritakse märksõnaga 'delegaat'. Sündmus kuulutatakse märksõna „sündmus” abil.
Sõltuvus
Delegaadid on vähenõudlikud. Üritused sõltuvad delegaatidest.

Kokkuvõte - Delegaadid vs sündmused C #

Delegaadid ja sündmused on kaks mõistet, mis on seotud sündmusepõhise programmeerimisega C # -s. Selles artiklis käsitleti erinevust delegaatide ja C # sündmuste vahel. Delegaadi ja sündmuse erinevus C #-s seisneb selles, et delegaat on viide meetodile, samal ajal kui sündmus seostatakse delegaati kasutava sündmusekäitlejaga. Üritused sõltuvad delegaatidest. Kui sündmus aset leidis, saadab see delegaadile signaali. Seejärel täidab delegaat vastava funktsiooni

Viide:

1.Balagurusamy, E. Programmeerimine C #-s, esilinastus. Neljas väljaanne, McGraw Hill Education (India) Private Limited, 2016.
2. „Põhimenüü”. C juhendaja. Saadaval siin 
3.sachinbpaul. Delegaadid C # -s, Sachin Paul, 1. oktoober 2014. Saadaval siin