Example #1
0
        static void Main()
        {
            Delegate1 delegate1 = new Delegate1(Method1);

            Delegate2 delegate2 = delegate1();   /// переменной delegate2 присваем возвращаемое значение метода, сообщенного с делегатом delegate1;

            delegate2();

            // Delay.
            Console.ReadKey();
        }
Example #2
0
        static void Main()
        {
            Delegate1 delegate1 = new Delegate1(Method1);

            Delegate2 delegate2 = delegate1();

            delegate2();

            // Delay.
            Console.ReadKey();
        }
Example #3
0
        public static Delegate3 MethodF(Delegate1 delegate1, Delegate2 delegate2) /// 2 "чемодана" передаем в качестве аргументов метода;
        {                                                                         /// на выходе получаем третий "чемодан".
            return(delegate { return delegate1.Invoke() + delegate2.Invoke(); }); /// 01:34:20 - здесь использован анонимный метод без входный параметров.
                                                                                  /// А мы анонимные методы ассоциируем с делегатами.
                                                                                  /// Говорим "анонимный метод", поразумеваем неявное создание
                                                                                  /// экземпляра делегата, ПРЕДПОЛОЖЕНИЕ ДЕЛЕГАТА в случае использования
                                                                                  /// анонимных методов (см. пример: 005_Delegates (anonymous methods))

            /// Здесь происходит конкатенация возвращаемых значений методов, сообщенных с делегатами, с делегатом 1 (delegate1) и с делегатом 2 (delegate2);
            /// 01:37:15 - На 16-й строке мы возвращаем делегат с сообщенным лямбда-методом, который возвращает конкатенацию возвращаемых значений методов,
            /// сообщенных с делегатами, которые поступают в качестве аргументов;
        }
 public static Delegate3 MethodF(Delegate1 delegate1, Delegate2 delegate2)
 {
     return(delegate { return delegate1.Invoke() + delegate2.Invoke(); });
 }