Пример #1
0
        static void Main()
        {
            MainApp m = new MainApp();

            OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
                new OnjDelegate(MainApp.Plus),
                new OnjDelegate(MainApp.Minus),
                new OnjDelegate(m.Multiplication),
                new OnjDelegate(m.Division));

            CallBack(4, 3);

            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Plus);

            CallBack2 += new OnjDelegate(MainApp.Minus);
            CallBack2 += new OnjDelegate(m.Multiplication);
            CallBack2 += new OnjDelegate(m.Division);

            CallBack2(5, 4);

            OnjDelegate CallBack3 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack4 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack5 = new OnjDelegate(m.Multiplication);
            OnjDelegate CallBack6 = new OnjDelegate(m.Division);

            OnjDelegate CallBack7 = CallBack3 + CallBack4 + CallBack5 + CallBack6;

            CallBack7(6, 5);

            (new OnjDelegate(MainApp.Plus) + new OnjDelegate(MainApp.Minus)
             + new OnjDelegate(m.Multiplication) + new OnjDelegate(m.Division))(7, 5);
        }
Пример #2
0
        static void Main()
        {
            Program main = new Program();

            // 델리게이트 체인
            // 여러 메소드를 추가해주는듯
            OnjDelegate Callback = (OnjDelegate)Delegate.Combine(
                new OnjDelegate(Plus),
                new OnjDelegate(Minus),
                new OnjDelegate(Mutiple),
                new OnjDelegate(Divisin)
                );

            // 델리게이트 체인 이렇게도 됨 1
            //OnjDelegate Callback = new OnjDelegate(Plus);
            //Callback += new OnjDelegate(Minus);
            //Callback += new OnjDelegate(Mutiple);
            //Callback += new OnjDelegate(Divisin);

            // 델리게잍트 체인 이렇게도 됨 2
            //OnjDelegate CallBack1 = new OnjDelegate(Plus);
            //OnjDelegate CallBack2 = new OnjDelegate(Minus);
            //OnjDelegate CallBack3 = new OnjDelegate(Mutiple);
            //OnjDelegate CallBack4 = new OnjDelegate(Divisin);
            //OnjDelegate Callback = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            Callback(4, 3);
        }
Пример #3
0
        // 델리게이트 체인 예제
        static void Main(string[] args)
        {
            MainApp m = new MainApp();
            //OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
            //                                        new OnjDelegate(MainApp.Plus),
            //                                       new OnjDelegate(MainApp.Minus),
            //                                        new OnjDelegate(MainApp.Multiple),
            //                                        new OnjDelegate(MainApp.Divison));

            /*
             * OnjDelegate CallBack = new OnjDelegate(MainApp.Plus);
             * CallBack += new OnjDelegate(MainApp.Minus);
             * CallBack += new OnjDelegate(MainApp.Multiple);
             * CallBack += new OnjDelegate(MainApp.Divison);
             */

            OnjDelegate CallBack1 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(MainApp.Multiple);
            OnjDelegate CallBack4 = new OnjDelegate(MainApp.Divison);

            OnjDelegate CallBack = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(4, 3);
        }
Пример #4
0
        static void Main(string[] args)
        {
            Program m = new Program();

            //OnjDelegate CallBack = new OnjDelegate(Program.Plus);
            //CallBack += new OnjDelegate(Program.Minus);
            //CallBack += new OnjDelegate(m.Multiple);
            //CallBack += new OnjDelegate(m.Divide);

            //OnjDelegate CallBack1 = new OnjDelegate(Program.Plus);
            //OnjDelegate CallBack2 = new OnjDelegate(Program.Minus);
            //OnjDelegate CallBack3 = new OnjDelegate(m.Multiple);
            //OnjDelegate CallBack4 = new OnjDelegate(m.Divide);
            //OnjDelegate CallBack = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
                new OnjDelegate(Program.Plus),
                new OnjDelegate(Program.Minus),
                new OnjDelegate(m.Multiple),
                new OnjDelegate(m.Divide)
                );



            CallBack(4, 3);
        }
Пример #5
0
        static void Main()
        {
            string str = Console.ReadLine();

            string[] sArr = str.Split(new char[] { ',' });
            int[]    arr  = Array.ConvertAll(sArr, s => int.Parse(s));



            MainApp m = new MainApp();

            OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
                new OnjDelegate(MainApp.Plus),
                new OnjDelegate(MainApp.Minus),
                new OnjDelegate(m.Multiplication),
                new OnjDelegate(m.Division));

            CallBack(arr[0], arr[1]);

            Console.WriteLine("멀티캐스팅 ->");
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Plus);

            CallBack2 += new OnjDelegate(MainApp.Minus);
            CallBack2 += new OnjDelegate(m.Multiplication);
            CallBack2 += new OnjDelegate(m.Division);
            CallBack2(arr[0], arr[1]);
        }
Пример #6
0
        static void Main()
        {
            MainApp     m        = new MainApp();
            OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
                new OnjDelegate(MainApp.Plus),
                new OnjDelegate(MainApp.Minus),
                new OnjDelegate(m.Multiplication),
                new OnjDelegate(m.Division));

            CallBack(4, 3);
        }
Пример #7
0
        static void Main(string[] args)
        {
            MainApp     m         = new MainApp();
            OnjDelegate CallBack1 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(m.Multiplication);
            OnjDelegate CallBack4 = new OnjDelegate(m.Division);
            OnjDelegate CallBack  = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(4, 3);
        }
Пример #8
0
        static void Main()
        {
            MainApp     m        = new MainApp();
            OnjDelegate CallBack = new OnjDelegate(MainApp.Plus);

            CallBack += new OnjDelegate(MainApp.Minus);
            CallBack += new OnjDelegate(m.Multiplication);
            CallBack += m.Division;

            CallBack(4, 3);
        }
Пример #9
0
        static void Main(string[] args)
        {
            string str = Console.ReadLine();

            str.Trim();

            string[] numbers = str.Split(',');

            OnjDelegate Callback = Plus;

            Callback += Minus;
            Callback += Multiple;
            Callback += Division;

            Callback(Convert.ToInt32(numbers[0]), Convert.ToInt32(numbers[1]));
        }
Пример #10
0
        // 메인 메서드 선언
        static void Main()
        {
            // 기동 클래스를 인스턴스화 (인스턴스화 된 객체명 : m)
            Program m = new Program();

            // OnjDelegate 자료형 객체 4종을 인스턴스화 하고, 이들을 엮어 딜리게이트 체인 객체 Callback으로 인스턴스화
            // 이 때 4종 각각에 대한 객체 이름은 없고, 딜리게이트 체인 객체 Callback이 호출 될 경우 4종이 각각 대리하는 메서드가 모두 호출된다
            OnjDelegate Callback = new OnjDelegate(Program.Plus);

            Callback = Callback + new OnjDelegate(Program.Minus);
            Callback = Callback + new OnjDelegate(m.Multi);
            Callback = Callback + new OnjDelegate(m.Div);

            // 인스턴스화 된 델리게이트 체인 Callback을 사용해 OnjDelegate 자료형의 네 객체를 모두 호출
            Callback(4, 3);
        }
Пример #11
0
        static void Main()
        {
            Console.WriteLine("정렬할 숫자를 ,(콤마)로 구분하여 입력하세요.");
            string str = Console.ReadLine();

            string[] sArray = str.Split(',');
            int[]    iArray = Array.ConvertAll(sArray, s => int.Parse(s));
            int      a      = iArray[0];
            int      b      = iArray[1];

            OnjDelegate CallBack1 = new OnjDelegate(Program.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(Program.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(Program.Multiplication);
            OnjDelegate CallBack4 = new OnjDelegate(Program.Division);
            OnjDelegate CallBack  = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(a, b);
        }
Пример #12
0
        static void Main()
        {
            Calc c = new Calc();

            /*
             * OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
             *     new OnjDelegate(Calc.Plus),
             *     new OnjDelegate(Calc.Minus),
             *     new OnjDelegate(c.Multiplication),
             *     new OnjDelegate(c.Division));
             */

            OnjDelegate CallBack = new OnjDelegate(Calc.Plus);

            CallBack += new OnjDelegate(Calc.Minus);
            CallBack += new OnjDelegate(c.Multiplication);
            CallBack += new OnjDelegate(c.Division);

            CallBack(4, 3);
        }
Пример #13
0
        static void Main(string[] args)
        {
            Console.WriteLine(", 로 구분하여 숫자 를 입력하세요");
            string str = Console.ReadLine();

            Console.WriteLine(str);
            string[] sArray = str.Split(',');
            double[] iArray = Array.ConvertAll(sArray, s => double.Parse(s));

            double num;

            double.TryParse(str, out num);
            MainApp     m         = new MainApp();
            OnjDelegate CallBack1 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(MainApp.Multiplication);
            OnjDelegate CallBack4 = new OnjDelegate(MainApp.Division);
            OnjDelegate CallBack  = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(iArray[0], iArray[1]);
        }
Пример #14
0
        static void Main(string[] args)
        {
            MainApp m = new MainApp();

            /*OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(new OnjDelegate(MainApp.Plus), new OnjDelegate(MainApp.Minus)
             *  , new OnjDelegate(m.Multiplication), new OnjDelegate(m.Division));*/

            /*OnjDelegate CallBack = new OnjDelegate(MainApp.Plus);
             * CallBack += new OnjDelegate(MainApp.Minus);
             * CallBack += new OnjDelegate(m.Multiplication);
             * CallBack += new OnjDelegate(m.Division);*/

            //CallBack(4, 3);
            OnjDelegate CallBack1 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(m.Multiplication);
            OnjDelegate CallBack4 = new OnjDelegate(m.Division);
            OnjDelegate CallBack  = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(4, 3);
        }
Пример #15
0
        static void Main()
        {
            MainApp m = new MainApp();
            //OnjDelegate CallBack = (OnjDelegate)Delegate.Combine(
            //        new OnjDelegate(MainApp.Plus),
            //        new OnjDelegate(MainApp.Minus),
            //        new OnjDelegate(m.Multiplication),
            //        new OnjDelegate(m.Division));

            //OnjDelegate CallBack = new OnjDelegate(MainApp.Plus);
            //CallBack += new OnjDelegate(MainApp.Minus);
            //CallBack += new OnjDelegate(m.Multiplication);
            //CallBack += new OnjDelegate(m.Division);

            OnjDelegate CallBack1 = new OnjDelegate(MainApp.Plus);
            OnjDelegate CallBack2 = new OnjDelegate(MainApp.Minus);
            OnjDelegate CallBack3 = new OnjDelegate(m.Multiplication);
            OnjDelegate CallBack4 = new OnjDelegate(m.Division);
            OnjDelegate CallBack  = CallBack1 + CallBack2 + CallBack3 + CallBack4;

            CallBack(4, 3);
        }
Пример #16
0
    static void Main()
    {
        Console.Write("쉼표(,)로 구분하여 두 수를 넣으시오: ");
        string[] strings = Console.ReadLine().Split(',');
        int[]    n       = Array.ConvertAll(strings, s => int.Parse(s));

        MainApp     m      = new MainApp();
        OnjDelegate chain1 = (OnjDelegate)Delegate.Combine(
            new OnjDelegate(MainApp.Plus),
            new OnjDelegate(MainApp.Minus),
            new OnjDelegate(m.Multiplication),
            new OnjDelegate(m.Division)
            );

        chain1(n[0], n[1]);
        Console.WriteLine();

        OnjDelegate chain2 = new OnjDelegate(MainApp.Plus)
                             + new OnjDelegate(MainApp.Minus)
                             + new OnjDelegate(m.Multiplication)
                             + new OnjDelegate(m.Division);

        chain2(n[0], n[1]);
    }