参考资料
http://www.microsoft.com/china/msdn/events/featureevents/default.mspx 这里有一些微软.net编程的视频资料 【程序编程相关:Python的特性(列表)】
«c#技术揭密» 【推荐阅读:treeview】
class person 【扩展信息:再谈模拟器上网!!(Symbian OS】
对学过c/c++的来说,delegate就相当于函数指针,看下面的代码:
{
public person(string name)
{
this.name=name;
}
//一些属性与方法
string name;
public void eat(food food);
}
person类有一个eat方法,对它的实例来说,张三,李四,王五都有他们自己的eat方法
person zhansan,lisi,wangwu;
zhansan=new person(”张三”);
lisi=new person(”李四”);
wangwu=new person(”王五”);
我们可以通过定义一个委托来分别调用eat方法
public void delegate eat(food food);
如果想调用zhansan.eat(food)
eat zhansaneat=new eat(zhansan.eat);
其他类似:
eat lisieat=new eat(lisi.eat);
eat wangwu=new eat(wangwu.eat);
这样调用zhansaneat(food)就相当于调用zhansan.eat(food)
委托最有用的是委托链,如果张三,李四,王五共同进餐
则可以定义委托如下
//定义复合委托
eat togethereat;
//c#中通过“+“将方法connect到委托,即将委托加到委托链中
//通过“-”将方法从委托链中删除
togethereat=zhansaneat+lisieat+wangwueat;
//张三,李四,王五一起吃西瓜
togethereat(西瓜);
//不带张三,只有李四与王五吃
togethereat=lisieat+wangwueat;
togethereat(西瓜);
... 下一页