En C#, un délégué représente un pointeur sur méthode. Un délégué est associé à une signature (un prototype) de méthode : on ne pourra stocker dans une variable de type délégué que des pointeurs sur des méthodes compatibles avec la signature considérée.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System; namespace TestDelegate { class Program { delegate int prototype(int x, int y); static int First(int x, int y) { return x + y; } static int Second(int x, int y) { return x * y; } static void Main(string[] args) { prototype signature; // En fonction du nombre de paramètre passé au programme, // on appelle une fonction ou l'autre. if (args.Length == 0) signature = First; else signature = Second; //signature = (args.Length == 0 ? First : (prototype)Second); Console.WriteLine(signature(3, 2)); } } } |
Et voici un exemple d'utilisation.
C:\> TestDelegate.exe 5 C:\> TestDelegate.exe aParam 6 C:\>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :