A delegált egy olyan osztály, amely lehetővé teszi egy metódusra való hivatkozás tárolását egy tetszőleges osztály meghatározott aláírásával (az elfogadott és visszatérési értékek sorrendje és típusai). [1] [2] [3] [4] . A delegált példányok hivatkozásokat tartalmaznak adott osztályok meghatározott metódusaira.
A küldöttek különösen a visszahívási függvény prototípusának meghatározására szolgálnak , például a .NET-keretrendszer eseménymodelljében .
A delegált típus deklarációjából a fordító létrehoz egy osztályt , amely a -ból származikSystem.MulticastDelegate . Tehát egy olyan függvény aláírása, amely egy delegáltot vesz argumentumként, így nézhet ki:
public MyFunction ( másik funkció delegálása ) ;A küldöttek további jellemzője, hogy aszinkron módon hívhatók a BeginInvoke(). Ebben az esetben egy szabad szálkészlet kerül kiválasztásra, és a megadott függvény párhuzamosan végrehajtásra kerül a környezetében. Érdemes azonban megjegyezni, hogy a készletben a szálak száma korlátozott (a jelenlegi .NET megvalósításban 25 van), és a többi hívás kivárja a sorát.
A példa kiírja a konzolra az "Egy függvény meghívása a hello paraméterrel" sort.