董董在这 2017-12-03 17:21:48 30188 收藏 112
分类专栏: C# 文章标签: 回调函数 c#
版权
C#
专栏收录该内容
4 篇文章0 订阅
订阅专栏
本博客一直以来的宗旨就是:用最简单的方式讲清楚不复杂的问题。
因为本人也很菜所以也没法讲太复杂HHHHHH......
所以如果哪天某个大神看到了觉得讲的有问题欢迎指出。
话不多说进入正题。。
——————————————————————————————————————
这篇文章的目的就是讲清楚C#回调函数是什么,以及什么时候使用。
直接拿例子来讲算了- -
using System;
namespace CallBackTest
{
class Program //用户层,执行输入等操作
{
static void Main(string[] args)
{
CalculateClass cc = new CalculateClass();
FunctionClass fc = new FunctionClass();
int result1 = cc.PrintAndCalculate(2, 3, fc.GetSum);
Console.WriteLine("调用了开发人员的加法函数,处理后返回结果:" + result1);
int result2 = cc.PrintAndCalculate(2, 3, fc.GetMulti);
Console.WriteLine("调用了开发人员的乘法函数,处理后返回结果:" + result2);
Console.ReadKey();
}
}
class FunctionClass //开发层处理,开发人员编写具体的计算方法
{
public int GetSum(int a, int b)
{
return (a + b);
}
public int GetMulti(int a, int b)
{
return (a * b);
}
}
#region 实际开发中,下面这个类会封装起来,只提供函数接口。相当于系统底层
class CalculateClass
{
public delegate int SomeCalculateWay(int num1, int num2);
//将传入参数在系统底层进行某种处理,具体计算方法由开发者开发,函数仅提供执行计算方法后的返回值
public int PrintAndCalculate(int num1 , int num2 , SomeCalculateWay cal)
{
Console.WriteLine("系统底层处理:" + num1);
Console.WriteLine("系统底层处理:" + num2);
return cal(num1, num2);//调用传入函数的一个引用
}
//可以封装更多的业务逻辑方法
}
#endregion
}
直接复制进控制台项目即可运行。