A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 安玉波 中级黑马   /  2013-3-7 00:14  /  1394 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.什么是委托?委托就是存放方法的指针清单,也可以理解为指向一个函数的指针。2.委托的创建方式:
准备一个方法:String Hello(string name) {//方法代码}
声明委托:delegate 返回值类型  委托类型名(参数)

例子:delegate string  DGSayHi(string name);
创建委托对象:DGSayHi dgSay=new DGSayHi(Hello);或者:DGSayHi dgSay=Hello;
追加方法:dgSay+=str.Hello2;
删除方法:dgSay-=str.Hello2;

3.委托的调用方式
dgSay("Tom");或者dgSay.Invoke("Tom");

4.委托的实例练习
  1. /// <summary>
  2.         /// 定义委托类型
  3.         /// </summary>
  4.         delegate void DGSayHi(string name);
  5.         //声明一个委托对象
  6.         DGSayHi dgSayHi = null;
  7.         /// <summary>
  8.         /// 声明一个与DGSayHi委托具有相同 签名的方法
  9.         /// </summary>
  10.         void SayHiHao(string name)
  11.         {
  12.             MessageBox.Show("您好," + name);
  13.         }
  14.         /// <summary>
  15.         /// 声明一个与DGSayHi委托具有相同 签名的方法
  16.         /// </summary>
  17.         void SayHi(string name)
  18.         {
  19.             MessageBox.Show("Hi," + name);
  20.         }
  21.         private void btnTest_Click(object sender, EventArgs e)
  22.         {
  23.             //实例化委托对象
  24.             dgSayHi = new DGSayHi(SayHiHao);
  25.             //向委托对象追加一个方法
  26.             dgSayHi += SayHi;
  27.             //向委托对象删除一个方法
  28.             dgSayHi -= SayHi;
  29.             //调用委托对象
  30.             dgSayHi("周星驰");
  31.         }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马