会员
周边
新闻
博问
闪存
众包
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
誉彬
程序人生
博客园
首页
新随笔
联系
订阅
管理
委托使用(2)
将委托构造为包装实例方法时,该委托将同时引用实例和方法。除了它所包装的方法外,委托不了解实例类型,所以只要任意类型的对象中具有与委托签名相匹配的方法,委托就可以引用该对象。将委托构造为包装静态方法时,它只引用方法。
调用委托时,它可以调用多个方法。这称为多路广播。
Code
1
namespace
ConsoleTest
2
{
3
class
Program
4
{
5
//
主程序入口出
6
static
void
Main(
string
[] args)
7
{
8
delegates de
=
new
delegates();
9
de.print();
10
11
}
12
}
13
class
delegates
14
{
15
//
声明一个 delegateT的委托参数 string类型
16
public
delegate
void
delegateT(
string
arg);
17
18
//
委托需要将要包装的方法,方法的签名必须与上面声明委托一致
19
public
void
delegateF0(
string
par)
20
{
21
System.Console.WriteLine(par);
22
}
23
24
public
void
delegateF1(
string
par)
25
{
26
System.Console.WriteLine(par);
27
}
28
public
void
delegateF2(
string
par)
29
{
30
System.Console.WriteLine(par);
31
}
32
public
void
print()
33
{
34
//
委托包装上面声明的方法
35
delegateT d1
=
delegateF0;
36
delegateT d2
=
delegateF1;
37
delegateT d3
=
delegateF2;
38
//
若要向委托的方法列表(调用列表)中添加额外的方法,只需使用加法运算符或加法赋值运算符(“+”或“+=”)添加两个委托。例如:
39
delegateT delAll
=
d1;
40
delAll
+=
d2
+
d3;
41
delAll(
"
委托的多路广播
"
);
42
43
}
44
}
45
}
46
posted @
2009-08-07 16:18
誉彬
阅读(
110
) 评论(
0
)
收藏
举报
刷新页面
返回顶部
公告