static void Main(string[] args)
        {
            //kansaliw ma 3 kanjiw hnaya kankatbo i kan instancemaken in delegate
            CalculateDelegate del1 = new CalculateDelegate(Add);
            CalculateDelegate del2 = new CalculateDelegate(Substract);
            CalculateDelegate del3 = new CalculateDelegate(Multiply);
            CalculateDelegate del4 = new CalculateDelegate(Divide);

            //add 4 delegate to del5 which is multicast delegate
            CalculateDelegate del5 = del1 + del2 + del3 + del4;

            del5.Invoke(20, 5);

            del5 -= del2;
            Console.WriteLine("----------------------------");
            Console.WriteLine();
            del5.Invoke(10, 2);

            Console.WriteLine("----------------------------");

            del5 += del2;
            del5 += del2;
            del5 += del2;
            del5.Invoke(6, 3);
        }
Exemple #2
0
        //public static double Calculate(double a, double b, Operator o)
        //{
        //    switch (o)
        //    {
        //        case Operator.Add:
        //            return Add(a, b);
        //        case Operator.Subtract:
        //            return Subtract(a, b);
        //        case Operator.Multiply:
        //            return Multiply(a, b);
        //        case Operator.Divide:
        //            return Divide(a, b);
        //        default:
        //            return 0;
        //    }
        //}
        /// <summary>
        /// 委托替代Calculate 取消switch判断
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <param name="cd"></param>
        /// <returns></returns>
        public double Calculate(double a, double b, CalculateDelegate cd)
        {
            double result = 0;

            result = cd.Invoke(a, b);

            return(result);
        }
Exemple #3
0
        //Main_12_2_5
        public static void Main_12_2_5()
        {
            //����ί�а�
            myDelegate = new CalculateDelegate(Add);
            //�ص�Add����
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);

            myDelegate = new CalculateDelegate(Subtract);
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);
        }
Exemple #4
0
        public static void Main_12_2_5()//Main_12_2_5
        {
            //进行委托绑定
            myDelegate = new CalculateDelegate(Add);
            //回调Add方法
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);

            myDelegate = new CalculateDelegate(Subtract);
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);
        }
Exemple #5
0
        //Main_12_2_5
        public static void Main_12_2_5()
        {
            //进行委托绑定
            myDelegate = new CalculateDelegate(Add);
            //回调Add方法
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);

            myDelegate = new CalculateDelegate(Subtract);
            //myDelegate(100, 200);
            myDelegate.Invoke(100, 200);
        }
Exemple #6
0
        static void Main(string[] args)
        {
            CalculateDelegate del1 = new CalculateDelegate(Add);
            CalculateDelegate del2 = new CalculateDelegate(Subtract);
            CalculateDelegate del3 = new CalculateDelegate(Multiply);
            CalculateDelegate del4 = new CalculateDelegate(Divide);

            // add 4 delegates to del5 which is multicast delegate
            CalculateDelegate del5 = del1 + del2 + del3 + del4;

            del5.Invoke(20, 5);

            del5 -= del2;
            Console.WriteLine("--------------");
            Console.WriteLine();
            del5.Invoke(10, 2);

            del5 += del2;
            del5 += del2;
            del5 += del2;
            del5 += del2;
            del5.Invoke(6, 3);
        }
Exemple #7
0
 public static double Calculate(double a, double b, CalculateDelegate cd)
 {
     return(cd.Invoke(a, b));
 }