En delegat er en klasse, der giver dig mulighed for at gemme en reference til en metode med en specifik signatur (rækkefølge og typer af accepterede og returværdier) af en vilkårlig klasse. [1] [2] [3] [4] . Delegerede forekomster indeholder referencer til specifikke metoder for specifikke klasser.
Delegerede bruges især til at definere prototypen for en tilbagekaldsfunktion , såsom i .NET Framework- hændelsesmodellen .
Fra delegattypeerklæringen genererer compileren en klasse , der stammer fra System.MulticastDelegate. Så signaturen af en funktion , der tager en delegeret som argument, kan se sådan ud:
offentlig MyFunction ( Deleger en andenFunktion );En yderligere funktion ved delegerede er, at de kan kaldes asynkront ved hjælp af BeginInvoke(). I dette tilfælde vælges en fri trådpulje, og den angivne funktion udføres parallelt i dens kontekst. Det er dog værd at bemærke, at antallet af tråde i puljen er begrænset (der er 25 i den nuværende .NET-implementering), og resten af opkaldene venter på deres tur.
Eksemplet udskriver på konsollen linjen "En funktion blev kaldt med parameteren hej.".