J'aime à penser qu'un délégué comme "un pointeur vers une fonction". Cela remonte à C jours, mais l'idée tient toujours.
L'idée est que vous devez être en mesure d'invoquer un morceau de code, mais ce morceau de code que vous allez invoquer n'est pas connue jusqu'à ce que l'exécution. Si vous utilisez un "délégué" à cette fin. Les délégués venir dans maniable pour des choses comme les gestionnaires d'événements, et ce, où que vous faire des choses différentes en fonction de différents événements, par exemple.
Voici une référence pour C#, vous pouvez la regarder:
En C#, par exemple, nous allons dire que nous avions un calcul que nous voulions faire et nous voulions utiliser une autre méthode de calcul qui nous ne savons pas jusqu'à ce que l'exécution. Donc, nous pourrions avoir un couple de méthodes de calcul comme ceci:
public static double CalcTotalMethod1(double amt)
{
return amt * .014;
}
public static double CalcTotalMethod2(double amt)
{
return amt * .056 + 42.43;
}
Nous pourrions déclarer un délégué signature comme ceci:
public delegate double calcTotalDelegate(double amt);
Et puis nous avons pu déclarer une méthode qui prend le délégué en tant que paramètre comme ceci:
public static double CalcMyTotal(double amt, calcTotalDelegate calcTotal)
{
return calcTotal(amt);
}
Et que l'on pourrait appeler l' CalcMyTotal
méthode passage en le délégué de la méthode que nous voulions utiliser.
double tot1 = CalcMyTotal(100.34, CalcTotalMethod1);
double tot2 = CalcMyTotal(100.34, CalcTotalMethod2);
Console.WriteLine(tot1);
Console.WriteLine(tot2);