Ceci est un exemple un peu abstrait illustrant les délégués (avec une touche de généricité) en C#. Vous pourrez comparer par vous-mêmes avec des programmes équivalents dans les langages que vous connaissez. Voir https://dotnetfiddle.net/QsMTSZ pour une version en ligne.
L'interface ITransformateur, générique sur le type T, expose le service Appliquer qui prend un T et retourne un T. Un exemple simple serait une fonction recevant un int et en retournant le cube. La classe Coupleur n'est pas générique mais offre un service générique sur la base d'un type T capable de prendre un ITransformateur<T> et d'invoquer sa méthode Appliquer en lui passant un paramètre de type T. Le type Opération est un délégué, donc une fonction polymorphique sur la base de sa signature. Remarquez sa forme : elle prend un T et retourne un T. Pour cette raison, elle pourrait remplacer la méthode d'instance Majuscules d'un AfficheurConsole, tout comme elle pourrait remplacer la méthode de classe Enrober. Notez qu'un délégué n'a pas à être générique; ici, je l'ai fait générique par pure déformation professionnelle. Le programme principal montre comment il est possible d'utiliser des délégués pour enchaîner des opérations sur la base de leur signature, même si l'une est une méthode d'instance et l'autre est une méthode de classe. |
|
Pour d'autres liens portant sur les délégués :