namespaceConsoleApp1 { publicdelegateintCalculator(int a, int b); classMathOperation { publicintAdd(int a, int b) { return a + b; } publicintSubtract(int a, int b) { return a - b; } }
namespaceConsoleApp1 { publicdelegatevoidCalculator(int a, int b); classMathOperation { publicvoidAdd(int a, int b) { Console.WriteLine($"10 + 5 = {a+b}"); } publicvoidSubtract(int a, int b) { Console.WriteLine($"10 - 5 = {a - b}"); } }
classZhao { public Calculator operation; public Func<int, int, int> operationFunc; public Action<int, int> operationAction; publicZhao(Calculator calculator) { operation = calculator; //operationAction = calculator.Invoke; operationAction = new Action<int, int>(calculator); //operationAction = (a, b) => calculator(a, b); } } internalclassProgram {
staticvoidMain(string[] args) { var math = new MathOperation(); var xiaozhao = new Zhao(math.Add); xiaozhao.operationAction(10, 5); //Console.WriteLine($"10 + 5 = {xiaozhao.operationFunc(10, 5)}"); xiaozhao.operationAction += math.Subtract; //Console.WriteLine($"10 - 5 = {xiaozhao.operationFunc(10, 5)}"); xiaozhao.operationAction(10, 5);
namespaceConsoleApp1 { publicdelegateintCalculator(int a, int b); classMathOperation { publicintAdd(int a, int b) { return a + b; } publicintSubtract(int a, int b) { return a - b; } }
classZhao { public Calculator operation; public Func<int, int, int> operationFunc; public Action<int, int> operationAction; publicevent Calculator operationEvent; publicZhao(Calculator calculator) { operationEvent = calculator; } publicintOnoperationEvent(int a, int b) { return operationEvent(a, b); } } internalclassProgram {
staticvoidMain(string[] args) { var math = new MathOperation(); var xiaozhao = new Zhao(math.Add); Console.WriteLine($"10 + 5 = {xiaozhao.OnoperationEvent(10, 5)}"); xiaozhao.operationEvent -= math.Add; xiaozhao.operationEvent += math.Subtract; Console.WriteLine($"10 - 5 = {xiaozhao.OnoperationEvent(10, 5)}");