Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 20054|Atbildi: 0

[Avots] Ātri izprotiet C# uzlabotos jēdzienus (1) Deleģējiet deleģēšanu

[Kopēt saiti]
Publicēts 19.01.2017 15:18:00 | | | |
Es ilgu laiku nodarbojos ar .NET izstrādi un nesen pārskatīju grāmatu "C# Advanced Programming". Es atklāju, ka daudzas problēmas, kuras es kādreiz sapratu, bet nesapratu, var lēnām izpētīt un saprast.

Tātad, es plānoju sākt rakstīt emuāra ziņu par "C # Advanced Programming Series". Tas balstīsies uz grāmatas "C# Advanced Programming" koncepciju, kā arī atsaucīsies uz citu ekspertu emuāra ierakstiem, es ceru, ka jūs saprotat. Ja kaut kas nav kārtībā, lūdzu, izlabojiet to.

(Arī: Šis emuāra ieraksts neizskaidros definīciju un gramatikas pamatus.) )



Parunāsim par nodošanu ekspluatācijā.

Delegāts tiek plaši izmantots .NET. Tiks iesaistītas lambda izteiksmes, notikumi, anonimitātes metodes utt.

Tātad, kas ir uzticēšana?

Nespeciālistu izteiksmē pārstāvji neatšķiras no metožu norādīšanas, izņemot to, ka tiem ir jānorāda pārstāvja atslēgvārds un tiem nav metodes entītijas. Jūs varat domāt par to kā vietturi, piemēram, kad rakstāt kodu, nezinot, ar ko jūs nodarbojaties. Jums vienkārši jāzina, kāds ir parametra veids un izvades veids, ko jūs gatavojaties ieviest, un definējiet to. Šī ir grāmatā paustā metode, ka parakstam ir jānozīmē tas pats.

Definēsim pamata deleģēšanu:





Izpildes rezultāti:
Vai redzat iepriekš minēto praktisko vietu, kur uzticēties? Proti,Pārstāvis var izpildīt jebkuru metodi ar to pašu uzņemšanas parametra tipu un atgriešanas tipu vai pat metodes rindu ar tādu pašu parakstu.

Tātad, vai mūsu metodes parakstiem (t.i., importa un izvades parametriem) tiešām ir jābūt tieši tādiem pašiem kā pārstāvim? Atbilde: Nē, mēs nevaram ignorēt kovariāciju un apgriezto variāciju.
Īsumā iepazīstināsim ar zināšanām par kovariantu un invertoru.

"Kovariācija" nozīmē iespēju izmantot tipu, kas ir vairāk atvasināts nekā sākotnēji norādītais atvasinātais tips.
"Invertors" attiecas uz spēju izmantot tipu ar mazāku atvasinājuma pakāpi.
Tad arī mūsu komisija ir pakļauta kovariācijai un apgrieztai.

Tas nozīmē, ka, ja ir definēts pārstāvis, ne tikai tā pati paraksta metode var piešķirt vērtību delegāta mainīgajam.
Ja metodes parametru tabula atbilst pārstāvja deklarācijai, bet atgriež atvasināto klasi (pārstāvja deklarācija atgriež tipu), tad metodi var piešķirt arī šim pārstāvja mainīgajam.
Ja metodes atgrieztais tips atbilst pārstāvja deklarācijai, bet arguments ir pārstāvja deklarācijas parametra tipa priekšteces klase, tad metodi var piešķirt arī pārstāvja mainīgajam.
Ja metodes parametri un atgriešanās veids atbilst iepriekš minētajās divās rindās minētajiem pieņēmumiem, tad metodi var piešķirt arī deleģētajam mainīgajam.

Šis ir vienkāršs piemērs kovariantam pret invertoru:

Kovariācija:

Invertors:







Iepriekšējo:MFC dizains
Nākamo:Kā uzzināt, kurš process PID fails ir aizņemts
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com