Megosztás a következőn keresztül:


Meghatalmazottak (C# programozási útmutató)

A delegált olyan típus, amely egy adott paraméterlistával és visszatérési típussal rendelkező metódusokra mutató hivatkozásokat jelöl. Amikor egy delegált példányt hoz létre, a delegált példányt bármely olyan metódushoz társíthatja, amely kompatibilis aláírással és visszatérési típussal rendelkezik. A metódust a delegált példányon keresztül hívhatja meg (vagy meghívhatja).

A meghatalmazottak metódusokat adnak át argumentumként más metódusoknak. Az eseménykezelők lényegében a meghatalmazottakon keresztül meghívható metódusok. Egyéni metódus létrehozásakor egy osztály, például a Windows-vezérlő meghívhatja a metódust egy bizonyos esemény bekövetkezésekor.

Az alábbi példa egy meghatalmazotti deklarációt mutat be:

public delegate int PerformCalculation(int x, int y);

Bármely olyan metódust hozzárendelhet bármely akadálymentes osztályból vagy szerkezetből, amely megfelel a meghatalmazott típusának a meghatalmazotthoz. A metódus lehet statikus vagy példánymetódus. A rugalmasság lehetővé teszi, hogy programozott módon módosítsa a metódushívásokat, vagy új kódot csatlakoztassa a meglévő osztályokhoz.

Jegyzet

A metódus túlterhelésének kontextusában a metódus aláírása nem tartalmazza a visszatérési értéket. A meghatalmazottak kontextusában azonban az aláírás tartalmazza a visszatérési értéket. Más szóval egy metódusnak kompatibilis visszatérési típussal kell rendelkeznie a meghatalmazott által deklarált visszatérési típusként.

A metódusok paraméterként való hivatkozásának képessége ideálissá teszi a meghatalmazottakat a visszahívási módszerek meghatározásához. Olyan metódust írhat, amely két objektumot hasonlít össze az alkalmazásban. A metódus ezután egy delegátban is használható egy rendezési algoritmushoz. Mivel az összehasonlító kód eltér a kódtártól, a rendezési módszer általánosabb lehet.

függvénymutatók hasonló forgatókönyveket támogatnak, ahol nagyobb mértékben kell szabályoznia a hívási konvenciót. A meghatalmazotthoz társított kód meghívása egy delegálttípushoz hozzáadott virtuális módszerrel történik. Ha függvénymutatókkal dolgozik, különböző konvenciókat adhat meg.

A delegált jellemzőinek megismerása

A meghatalmazottak a következő jellemzőkkel rendelkeznek:

  • A meghatalmazottak lehetővé teszik a metódusok paraméterként való átadását.
  • A meghatalmazottak visszahívási módszerek definiálására használhatók.
  • A delegáltak összefűzhetők, például több metódus hívható meg egyetlen eseményhez kapcsolódóan.
  • A metódusoknak nem kell pontosan egyezniük a delegált típusával. További információ: A variancia alkalmazása a delegáltakban.
  • A Lambda-kifejezések a beágyazott kódblokkok írásának tömörebb módjai. A Lambda-kifejezések (bizonyos kontextusokban) delegálási típusokra vannak lefordítva. További információ a lambdakifejezésekről: Lambda-kifejezések.

A meghatalmazottakról az alábbi cikkekben talál további információt:

A C# nyelvi specifikációjának elérése

A nyelvi specifikáció a C#-szintaxis és -használat végleges forrása. További információkért lásd a delegátok a C# nyelv specifikációja-ban.