Rechercher
 

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 :

Définition d'un délégué en C#

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.

Exemple de code

 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));
        }

    }
}
Utilisation de délégué

Et voici un exemple d'utilisation.

C:\> TestDelegate.exe
5
C:\> TestDelegate.exe aParam
6
C:\>