示例#1
0
 /// <summary>
 /// 計算実行
 /// </summary>
 /// <param name="calcHandler">計算処理デリゲート</param>
 /// <param name="x">値1</param>
 /// <param name="y">値2</param>
 private void Execute(CalcHandler calcHandler, int x, int y)
 {
     if (calcHandler != null)
     {
         Console.WriteLine(calcHandler(x, y));
     }
 }
 public CalculationProps(string name, string description, CalcParam[] args, CalcParam result, CalcHandler calcHandler)
 {
     Name        = name;
     Description = description;
     Args        = args;
     Result      = result;
     Handler     = calcHandler;
 }
示例#3
0
        //test using a delegate
        static void Main(string[] args)
        {
            MyMath math = new MyMath();
            //create a new instance of the delegate class
            CalcHandler sumHandler = new CalcHandler(math.Sum);
            //invoke the delegate
            int result = sumHandler(4, 2);

            Console.WriteLine("Result is: " + result);
            //change the method and invoke again
            sumHandler = new CalcHandler(math.FakeSum);
            Console.WriteLine("Result is now: " + sumHandler(4, 2));
        }
示例#4
0
        public void RunHandlers()
        {
            calcInt += AddInt;
            calcInt(10, 5);

            //무명 델리게이트
            calcFloat += delegate(float a, float b)
            {
                System.Console.Write("Chain 1: ");
                System.Console.WriteLine(a + b);
            };

            //람다식
            calcFloat += (float a, float b) =>
            {
                System.Console.Write("Chain 2: ");
                System.Console.WriteLine(a + b);
            };
            calcFloat(10.3f, 2.5f);
        }