示例#1
0
        static void Main(string[] args)
        {
            //Il n'y a pas de () à la fin du nom de la méthode car il s'agit d'une affectation
            TypeDelegue variable = MethodeDuDelegue;

            //Un délégué peut prendre à sa charge plusieurs méthodes ! On appelle cela le multicast
            //Toutefois le mécanisme n'est pas automatique, il faut le renseigner par l'opérateur +=
            //Ajout de la méthode AutreMethodeDuDelegue au délégué
            variable += AutreMethodeDuDelegue;

            //Les () enclenchent la ou les méthodes du délégué
            variable("Hello World !");

            Console.WriteLine(); Console.ReadKey();

            //De meme l'opérateur -= va soustraire la méthode du délégué
            variable -= AutreMethodeDuDelegue;

            variable("Hello Wallonie !");

            Console.WriteLine(); Console.ReadKey();

            MethodeAvecDelegue("Hello", "Hornu", variable);

            Console.WriteLine(); Console.ReadKey();

            //Il est tout à fait possible d'additionner des délégués s'ils sont de même définition
            //Cela donnera un délégué qui propose l'ensemble des méthodes
            TypeDelegue A = MethodeDuDelegue;
            TypeDelegue B = AutreMethodeDuDelegue;
            TypeDelegue C = A + B;

            C("Hello Technocite !");
            Console.WriteLine(); Console.ReadKey();
            //On peut aussi soustraire
            C -= B; // = C=C-B = C=A-B
            C("Hello Technocite !");

            Console.WriteLine(); Console.ReadKey();

            //Actions et fonctions

            affiche1();
            affiche2("Bonjour");
            affiche3("Bonjour", "Vlad");
            affiche4("Bonjour", "Vlad", 1);
            print("Bonjour");

            Console.WriteLine(); Console.ReadKey();

            Console.WriteLine(func1.Invoke(5));
            Console.WriteLine(func2.Invoke(true, 10));
            Console.WriteLine("Addition de 4 et 5 = " + add.Invoke(4, 5));

            Console.WriteLine(); Console.ReadKey();
        }
示例#2
0
 //Une utilité des délégués est de pouvoir être passés en paramètre de méthode
 public static void MethodeAvecDelegue(string x, string y, TypeDelegue retour)
 {
     retour(String.Format("Le message est: {0} {1} !", x, y));
 }