Example #1
0
        void test()
        {
            del  = printMessage;
            del += printMessage;

            del("myDelegate");

            Delegate[] items = del.GetInvocationList();

            for (int j = 0; j < items.Length; j++)
            {
                ((myDelegate)items[j]).Invoke("Hello");
            }

            int i = 0;

            foreach (myDelegate item in items)
            {
                item("Aufruf " + ++i);
                item.Invoke("Aufruf " + i);                 // Alternative
            }
        }
Example #2
0
        static void Main(string[] args)
        {
            /* Creo una variable de mi clase delegado. */
            myDelegate varDelegate;

            varDelegate = new myDelegate(metodoUno);


            /*  Ejecucion del metodo */
            varDelegate("mi nombre es nacho");
            varDelegate("mi apellido es aurtenechea");
            varDelegate("mi dni es 35208599");

            /*  ahora varDelegate tiene 2 funciones. */
            varDelegate += metodoDos;
            varDelegate("se ejecuta dos veces?");
            Console.WriteLine("LIST");
            Delegate[] l = varDelegate.GetInvocationList();
            /* no se como invocar a sus metodos. */
            Console.WriteLine("");

            /*  para llamar a un metodo de instancia, necesito una instancia. */
            Program p = new Program("444");

            myDelegate2 varDelegate2;

            varDelegate2 = new myDelegate2(p.getId);

            /*  imprimo 4 veces lo que retorna la funcion almacenda en delegate2 */
            Console.WriteLine(varDelegate2());
            Console.WriteLine(varDelegate2());
            Console.WriteLine(varDelegate2());
            Console.WriteLine(varDelegate2());



            Console.ReadKey();
        }