委托事件(未完待续...)
来源:互联网 发布:与大数据相关的技术 编辑:程序博客网 时间:2024/06/06 02:15
先来看一个例子:
某人有三子,让他们各自带一样东西出门,并带回一头猎物。
可以理解为一种父亲对儿子的委托:
猎物 办法(工具 某工具)
三个人执行委托的方法各不相同
兔子 打猎(工具 弓)
野鸡 买(工具 钱)
狼 诱捕(工具 陷阱)
什么是委托?
委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)。
public delegate double Handler(double[] ds);
public double Sum(double[] ds) {//在方法中执行操作。}
public double Average(double[] ds) {//在方法中执行操作。}
委托的实例化
用new关键字(将方法名作为参数)生成一个委托对象,建立委托与方法的关联。
例:
Handler handler = new Handler(Sum);
使用委托
可以像使用变量一样使用委托的实例。使用委托时,需要给委托按要求传递参数。
使用委托,则委托所关联的方法被调用。
例:
double[] weights={1.0,2.0,3.0,4.0};
double result=handler(weights);
一个委托可以通过+运算委托关联多个方法,叫多路广播委托(对应于单路广播委托)。
如果此时使用委托,则所有的关联方法都被调用。
例:
Handler handler = new Handler(Sum);
handler += new Handler(Average);
某人有三子,让他们各自带一样东西出门,并带回一头猎物。
可以理解为一种父亲对儿子的委托:
猎物 办法(工具 某工具)
三个人执行委托的方法各不相同
兔子 打猎(工具 弓)
野鸡 买(工具 钱)
狼 诱捕(工具 陷阱)
什么是委托?
委托是一个类型,用来指称所有形式相同的方法(返回值类型相同而且参数也相同)。
public delegate double Handler(double[] ds);
public double Sum(double[] ds) {//在方法中执行操作。}
public double Average(double[] ds) {//在方法中执行操作。}
委托的实例化
用new关键字(将方法名作为参数)生成一个委托对象,建立委托与方法的关联。
例:
Handler handler = new Handler(Sum);
使用委托
可以像使用变量一样使用委托的实例。使用委托时,需要给委托按要求传递参数。
使用委托,则委托所关联的方法被调用。
例:
double[] weights={1.0,2.0,3.0,4.0};
double result=handler(weights);
一个委托可以通过+运算委托关联多个方法,叫多路广播委托(对应于单路广播委托)。
如果此时使用委托,则所有的关联方法都被调用。
例:
Handler handler = new Handler(Sum);
handler += new Handler(Average);
0 0
- 委托事件(未完待续...)
- 委托事件(未完待续...)
- js事件总结<未完----待续>
- POJ1753(未完待续)
- TreeMap(未完待续)
- HashTable(未完待续)
- string(未完待续)
- 方向(未完待续)
- 红黑树(未完待续)
- 源代码(未完待续)
- 绪论(未完待续)
- (未完待续)
- 认识Shark(未完待续)
- 一些算法(未完待续)
- 一些数据结构(未完待续)
- Struts2优缺点(未完待续)
- 生死游戏(未完待续)
- libcurl - curl_formadd()(未完,待续)
- 给定单链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该节点
- lineReader 文件上传MySQL(可读每行)
- C++第6次作业
- 2016 百度之星资格赛 Problem C (Trie模板)
- 菜鸟上路,杭电OJ1002之大数相加
- 委托事件(未完待续...)
- 【android】:android与java的关系
- jQuery 的选择器
- Activity的四种启动模式
- Matlab R2015b怎么把界面改为中文/英文
- Android在线自动更新的实现
- linux内文件说明
- 序列化和反序列化一般用于什么场合
- Redis 过期时间、访问限制与缓存