示例#1
0
        private static void SecondExample()
        {
            var calc1 = new DoCalculation(Show1);
            var calc2 = new DoCalculation(Show2);

            // Как очеред, первым скомбинирован  - первым выполнится
            // Если возвращается значение, это значение будет того, кто выполнился последним
            var combine = (DoCalculation)Delegate.Combine(calc1, calc2);

            //DoCalculation combine = null;
            //combine += calc1; //(DoCalculation)Delegate.Combine(combine, calc1);
            //combine += calc2; //(DoCalculation)Delegate.Combine(combine, calc2);

            //combine -= calc2; //(DoCalculation)Delegate.Remove(combine, calc1);

            //// Если результатом оказывается пустой список вызова, возвращается null.
            //// Тут как раз это и происходит => combine is null !!!!!!
            //combine -= calc1; //(DoCalculation)Delegate.Remove(combine, calc1);

            Calc instance = new EngCalc(10);

            string s = combine((EngCalc)instance);

            Console.WriteLine(s);
        }
示例#2
0
 private static string Show2(EngCalc c)
 {
     return(c.SumDouble(1, 2).ToString(CultureInfo.InvariantCulture));
 }