/// <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; }
//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)); }
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); }