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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wang29901 中级黑马   /  2013-11-23 17:16  /  1082 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wang29901 于 2013-11-24 15:12 编辑

怎么合并委托(多路广播委托)

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

2 个回复

正序浏览
  1. Invoking delegate a:
  2.   Hello, A!
  3. Invoking delegate b:
  4.   Goodbye, B!
  5. Invoking delegate c:
  6.   Hello, C!
  7.   Goodbye, C!
  8. Invoking delegate d:
  9.   Goodbye, D!
复制代码
这个是运行的结果,由于是测试用的,所以方法都写的是很简单的的,委托的返回值和参数类型必须和委托指向的方法的返回值和参数类型相同,并且参数的个数要相等。{:soso_e130:}

评分

参与人数 1技术分 +2 收起 理由
茹化肖 + 2

查看全部评分

回复 使用道具 举报
  1. //声明委托
  2. delegate void Del(string s);

  3. //测试类
  4. class TestClass
  5. {
  6.         //静态方法
  7.     static void Hello(string s)
  8.     {
  9.         System.Console.WriteLine("  Hello, {0}!", s);
  10.     }
  11.         //静态方法
  12.     static void Goodbye(string s)
  13.     {
  14.         System.Console.WriteLine("  Goodbye, {0}!", s);
  15.     }
  16.     //主函数
  17.     static void Main()
  18.     {
  19.                
  20.         Del a, b, c, d;

  21.                 //创建一个委托,并且指向Hello方法(这里都是在同一个类中,所以静态方法不用class为前缀)
  22.         a = Hello;
  23.                
  24.                 //创建一个委托,并且指向Goodbye方法(这里都是在同一个类中,所以静态方法不用class为前缀)
  25.         b = Goodbye;

  26.         //创建一个委托,包含a和b委托的方法
  27.         c = a + b;

  28.                 //从c委托中移除a委托,只剩下b委托,指向d委托
  29.         d = c - a;
  30.                
  31.                 //显示出来
  32.         System.Console.WriteLine("Invoking delegate a:");
  33.         a("A");
  34.         System.Console.WriteLine("Invoking delegate b:");
  35.         b("B");
  36.         System.Console.WriteLine("Invoking delegate c:");
  37.         c("C");
  38.         System.Console.WriteLine("Invoking delegate d:");
  39.         d("D");
  40.     }
  41. }
复制代码
委托对象的一个用途在于;
     可以使用 "+"(英文加号)运算符将它们分配给一个要成为多路广播委托的委托实例。组合的委托可调用组成它的那两个委托,例如上面代码中的C委托;  注意:只有相同类型的委托才可以组合。
                  "-"(英文减号) 运算符可用来从组合的委托移除组件委托,例如上面的d委托。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马