用委托实现插件式编程
来源:互联网 发布:淘宝可以改实名认证吗 编辑:程序博客网 时间:2024/06/05 17:26
我们可以利用“委托是一个能把方法作为参数传递的对象”这一特点,来实现一种插件式编程。
例如,我们有一个Utility类,这个类实现一个通用方法(Calculate),用来执行任何有一个整型参数和整型返回值的方法。这样说有点抽象,下面来看一个例子:
delegate int Calculator(int x);class Program { static int Double(int x) { return x * 2; } static void Main(string[] args) { int[] values = { 1,2,3,4}; Utility.Calculate(values, Double); foreach (int i in values) Console.Write(i + " "); // 2 4 6 8 Console.ReadKey(); }}class Utility { public static void Calculate(int[] values, Calculator c) { for (int i = 0; i < values.Length; i++) values[i] = c(values[i]); }}这个例子中的Utility是固定不变的,程序实现了整数的Double功能。我们可以把这个Double方法看作是一个插件,如果将来还要实现诸如求平方、求立方的计算,我们只需向程序中不断添加插件就可以了。
如果Double方法是临时的,只调用一次,若在整个程序中不会有第二次调用,那么我们可以在Main方法中更简洁更灵活的使用这种插件式编程,无需先定义方法,使用λ表达式即可,如:
...Utility.Calculate(values, x => x * 2);...
0 0
- 用委托实现插件式编程
- 编程程序实现委托,事件。
- 编程程序实现委托,事件。
- 用C++实现委托
- 用javascript实现“委托”
- VC++实现插件编程
- VC++实现插件编程
- VC++实现插件编程 .
- 异步委托实现多线程winform控件编程
- 异步委托实现多线程winform控件编程
- 例子:用委托实现事件
- 用委托实现回调
- 用委托实现回调
- 用oc实现委托机制
- 实现委托
- C# 委托之 用委托实现事件 三枪控件
- 委托的问题 - 用委托实现回调
- ios编程思想:委托实现方式1 - 协议方式(protocol)
- java dwr配置
- 反射输出helloworld
- chromedriver与GOOGLE浏览器对应版本
- Gradle多渠道打包以及混淆配置总结
- Spring框架打印机实例
- 用委托实现插件式编程
- 找出member表中,username字段 中以@p结尾的用户名的项
- 47. Permutations II
- 我的错误
- Android ConstraintLayout
- oracle查看允许的最大连接数和当前连接数等信息
- SAAS、 PAAS、 IAAS
- 相机位姿问题的特征点法求解——高翔(转载自泡泡机器人)
- 【Get深一度】对消失矩的理解