Пример #1
0
        private void brnOperar_Click(object sender, EventArgs e)
        {
            MiDelegado del = new MiDelegado(Sumar);
            //del.Invoke(3, 2);
            MiDelegado del2 = new MiDelegado(this.Restar);
            //del2(5, 2);
            MiDelegado del3 = (MiDelegado)MiDelegado.Combine(del, del2);

            del3.Invoke(10, 5);

            //MessageBox.Show(del3.Target.ToString());

            //MessageBox.Show(del3.Method.ToString());

            //foreach(MiDelegado d in del3.GetInvocationList())
            //{
            //    MessageBox.Show(d.Method.ToString());
            //}

            MiDelegado del4 = (MiDelegado)MiDelegado.Combine(del3, new MiDelegado(Multiplicar));

            del4.Invoke(5, 5);

            MiDelegado2 del5 = new MiDelegado2(OtraSuma);

            del5.Invoke(del, 8, 10);
        }
Пример #2
0
        private void btnOperar_Click(object sender, EventArgs e)
        {
            Manejadora manejadora = new Manejadora();
            //El delegado se encarga de invocar y pasar los datos recibidos a la direccion de memoria
            MiDelegado del = new MiDelegado(manejadora.Sumar);

            del.Invoke(3, 2);//Son los enteros que me requiere el metodo Sumar
            //del(5, 2); Se puede poner de ambas maneras

            MiDelegado del2 = new MiDelegado(manejadora.Restar);

            del2.Invoke(3, 2);
            //del2(5, 2);

            MiDelegado del3 = (MiDelegado)MiDelegado.Combine(del, del2); //Combinar lista de invocacion, se combina el primero y el segundo para que el tercero tengo dos metodos

            del3.Invoke(83, 102);                                        //Hace el metodo sumar y restar en un solo delegado, ya que esta combinado

            //MessageBox.Show(del3.Method.ToString()); Me muestra la ultima firma que tiene ese delegado

            MessageBox.Show(del3.Target.ToString());           //Me muestra la instancia de donde esta el metodo

            foreach (Delegate aux in del3.GetInvocationList()) //Muestra todas las firmas que tienen el delegado
            {
                MessageBox.Show(aux.Method.ToString());
            }

            MiDelegado del4 = (MiDelegado)MiDelegado.Combine(del3, new MiDelegado(manejadora.Multiplicar)); //Combina con el delegado 3 que tiene sumar y restar y tambien multiplica

            del4(3, 2);

            MiDelegado2 del5 = new MiDelegado2(manejadora.OtraSuma);

            del5.Invoke(del, 5, 2); //Invocas al delegado y este hace el metodo que tiene cargado, ejemplo del tiene suma
        }