黑马程序员技术交流社区
标题:
.net委托支持多路广播?
[打印本页]
作者:
乔克
时间:
2011-12-12 17:58
标题:
.net委托支持多路广播?
.net委托支持多路广播?
多路广播是什么啊
作者:
付炯
时间:
2011-12-12 18:55
我想你问的应该是多播委托吧
引用多个方法的委托称为多播委托 调用时连续调用每个方法 其中每个委托必须是同类型的 且返回值必须为void
C#的事件处理委托是多播的 事件处理方法可以不必在生成事件的类中定义 保证事件处理程序可以放在不同类中
作者:
余飞
时间:
2011-12-12 19:04
指的多播委托吧 ....委托也可以包含多个方法,这种委托称为多播委托.调用多播委托,就可以按顺序连续调用多个方法。为此,委托的签名就必须返回 void ;
可以搜下 一瓶牛奶和一张报纸引发的“委托”事件
作者:
何旭
时间:
2011-12-12 22:36
本帖最后由 何旭 于 2011-12-12 22:38 编辑
介于论坛上有很多人,提到委托,以及委托的多播!
小弟不才,写了一遍关于委托的博客
地址是: http://www.cnblogs.com/cilence/archive/2011/12/12/2285363.html
谈到委托,那么首先我们要知道什么是委托,委托能做什么事,如果做!
先说什么是委托,委托的定义:
通俗的来说,委托就是一个能存放某种特定格式(方法的签名,如返回值,参数)的方法指针清单。
微软官方的解释是,delegate 是一种可用于封装命名或匿名方法的引用类型。 委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。
下面我们来讲述一个使用委托过滤字符数组的案例:
namespace 委托
{
class Program
{
static void Main(string[] args)
{
//定义一个待过滤的字符串
string text = "XXX等待过BBB滤的字符串";
//实例化一个委托,将Filter1方法的指针作为引用
FilterDelegate filter = new FilterDelegate(Filter1);
//实例化一个委托,将Filter2方法的指针作为引用
FilterDelegate filter2 = new FilterDelegate(Filter2);
//执行方法
string fileter1result = filter(text);
Console.WriteLine(fileter1result);
Console.WriteLine(filter2(fileter1result));
Console.WriteLine();
//以下是多播委托
//委托对象的一个有用属性是:可以使用 + 运算符将多个对象分配给一个委托实例
//声明多个委托
DoubleDelegate double1, double2, double3;
double1 = Hello;
double2 = double1 + Bye;
double3 = double2 - Hello;
Console.WriteLine("打印double1:");
double1("A");
Console.WriteLine("打印double2:");
double2("B");
Console.WriteLine("打印double3:");
double3("C");
Console.ReadKey();
/*总结:
*delegate 是一种可用于封装命名或匿名方法的引用类型。 委托类似于 C++ 中的函数指针.
*/
}
//过滤策略1
static string Filter1(string value) {
return value.Replace("XXX","太好了");
}
//过滤策略2
static string Filter2(string value)
{
return value.Replace("BBB", "好");
}
static void Hello(string s) {
Console.WriteLine("Hello:{0}!",s);
}
static void Bye(string s) {
Console.WriteLine("Bye:{0}!", s);
}
}
/*1.首先声明一个委托
*delegate表示该类型是委托类型
*string 是委托引用方法的方法返回值
*string value 是委托引用方法的方法参数
**/
delegate string FilterDelegate(string value);
//一个多播委托
delegate void DoubleDelegate(string s);
}
复制代码
未命名.jpg
(19.02 KB, 下载次数: 52)
下载附件
2011-12-12 22:38 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2