C#多路广播简单描述

C#语言有很多值得学习的地方,这里我们主要介绍C#多路广播,包括介绍多路代理MSDN上翻译成C#多路广播等方面。

10余年的云县网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网整合营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整云县建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联建站从事“云县网站设计”,“云县网站推广”以来,每个客户项目都认真落实执行。

一个代理同时代理几个方法。就是我们前面说到的那样,你去建造房子,现在要不仅仅是建造住宅,还的去建造花园等等其它建筑物。可是它们都是在建造房子,传递的参数也相同返回值的类型也相同都是房屋。那么我们为什么不找一个代理人来完成这样的任务呢?把这些事物交由他一个人来完成不是可以节省我们很多的时间和金钱。是的我们可以那样做System。MulticastDelegate 实际上在.net framework中你还可以找到这个类,多路代理MSDN上翻译成C#多路广播。事实上它还重载了操作符+=。其实C#多路广播和单路代理在使用方法上区别不大。你可以看下面的例子。

 
 
 
  1. using System;
  2. namespace Multi_castDelegate
  3. {
  4. /// 
  5. /// Summary description for Class1.
  6. /// 
  7. class MyClassDelegate
  8. {
  9. /// 
  10. /// The main entry point for the application.
  11. /// 
  12. public delegate string IntDelegate(string s);
  13. }
  14. }
  15. using System;
  16. namespace Multi_castDelegate
  17. {
  18. /// 
  19. /// Summary description for MyImplementingClass.
  20. /// 
  21. public class MyClass
  22. {
  23. public MyClass()
  24. {
  25. }
  26. public static string WriteString(string s)
  27. {
  28. Console.WriteLine("Writing string");
  29. return "null";
  30. }
  31. public static string logString(string s)
  32. {
  33. Console.WriteLine("loging string");
  34. return "null";
  35. }
  36. public static string TransmitString(string s)
  37. {
  38. Console.WriteLine("Transmitting string");
  39. return "null";
  40. }
  41. }
  42. }
  43. The Main class:
  44. using System;
  45. using System.Threading;
  46. namespace Multi_castDelegate
  47. {
  48. /// 
  49. /// Summary description for Test.
  50. /// 
  51. public class Test
  52. {
  53. public static void Main()
  54. {
  55. MyClassDelegate.StringDelegate
  56. Writer,Logger,Transmitter;
  57. MyClassDelegate.StringDelegate
  58. myDelegate;
  59. Writer=new
  60. MyClassDelegate.StringDelegate(MyClass.WriteString);
  61. /// calling Writer
  62. Writer("hello i am Writer just acting like Single cast");
  63. Logger=new MyClassDelegate.StringDelegate(MyClass.logString);
  64. ///calling Logger
  65. Logger("hello i am Logger just acting like Single-cast");
  66. Transmitter=new MyClassDelegate.StringDelegate(MyClass.TransmitString);
  67. ///calling Transmitter
  68. Transmitter("hello i am Transmitter just acting like Single-cast");
  69. ///here mydelegate used the Combine method of System.MulticastDelegate
  70. ///and the delegates combine
  71. myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
    Combine(Writer,Logger);
  72. myDelegate("used Combine");
  73. ///here Transmitter is also added using the overloaded form of Combine
  74. myDelegate+=Transmitter;
  75. myDelegate("Using Overloaded Form");
  76. ///now using the Remove method
  77. myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
    Remove(myDelegate,Writer);
  78. myDelegate("Without Writer");
  79. ///overloaded Remove
  80. myDelegate-=Transmitter;
  81. myDelegate("Without Transmitter");
  82. System.Threading.Thread.Sleep(2300); 
  83. }
  84. }
  85. }

面的例子重点是看那两个已经重载的操作符。"-="和"+="。通过上面的例子,你可以清楚的看到C#多路广播是如何一次代理多个方法的。当然你也可以删除掉那些你不想要的用"-="操作符就可以了。

网站名称:C#多路广播简单描述
链接地址:http://www.hantingmc.com/qtweb/news23/502323.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联