static void Main()
        {
            Functional functional = new Functional(MethodF);

            Delegate3 delegate3 = functional.Invoke(new Delegate1(Method1), new Delegate2(Method2));

            Console.WriteLine(delegate3.Invoke());

            // Delay.
            Console.ReadKey();
        }
Example #2
0
        static void Main(string[] args)
        {
            Delegate3 dl3 = new Delegate3();
            //instance for delegate
            Del d3 = dl3.MulitplyNumbers;

            Console.WriteLine("Invoking the delegate: ");
            for (int i = 1; i <= 10; i++)
            {
                d3(i, 2);
            }
            Console.Read();
        }
Example #3
0
        static void Main()
        {
            Functional functional = new Functional(MethodF);                                         /// создаем чемодан (экземпляр делегата) Functional и сообщаем с ним метод, возвращаемым значением
                                                                                                     /// которого является экземпляр типа делегата Delegate3, который в свою очередь представляет собой
                                                                                                     /// "указатель" на метод без входных параметров и вовзращающий строковое значение ;

            Delegate3 delegate3 = functional.Invoke(new Delegate1(Method1), new Delegate2(Method2)); /// присваиваем переменной delegate3 возвращаемое значение

            /// метода MethodF, совмещенного с экземпляром functional
            /// класса-делегата Delegate3.
            /// При обращении к делегату Functional передаем 2 входных
            /// параметра, каждый из которых является экземпляром других
            /// классов-делегатов.

            /// В итоге переменная delegate3 содержит ссылку ("указатель") на анонимный метод, который не принимает входных аргументов и возвращает строку;
            /// Как видно, этот анонимный метод является возвращаемым значением метода MethodF, который был совмещен с экземпляром делегата Delegate3, functional;

            Console.WriteLine(delegate3.Invoke());

            // Delay.
            Console.ReadKey();
        }