亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#多路廣播怎么實現

發布時間:2021-12-01 11:54:07 來源:億速云 閱讀:205 作者:iii 欄目:編程語言

這篇文章主要講解了“C#多路廣播怎么實現”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C#多路廣播怎么實現”吧!

一個代理同時代理幾個方法。就是我們前面說到的那樣,你去建造房子,現在要不僅僅是建造住宅,還的去建造花園等等其它建筑物。可是它們都是在建造房子,傳遞的參數也相同返回值的類型也相同都是房屋。那么我們為什么不找一個代理人來完成這樣的任務呢?把這些事物交由他一個人來完成不是可以節省我們很多的時間和金錢。是的我們可以那樣做System。MulticastDelegate 實際上在.net framework中你還可以找到這個類,多路代理MSDN上翻譯成C#多路廣播。事實上它還重載了操作符+=。其實C#多路廣播和單路代理在使用方法上區別不大。你可以看下面的例子。

  1. using System;  

  2. namespace Multi_castDelegate  

  3. {  

  4. /// <summary> 

  5. /// Summary description for Class1.  

  6. /// </summary> 

  7. class MyClassDelegate  

  8. {  

  9. /// <summary> 

  10. /// The main entry point for the application.  

  11. /// </summary> 

  12. public delegate string IntDelegate(string s);  

  13. }  

  14. }  

  15. using System;  

  16. namespace Multi_castDelegate  

  17. {  

  18. /// <summary> 

  19. /// Summary description for MyImplementingClass.  

  20. /// </summary> 

  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.  

  44. The Main class:  

  45. using System;  

  46. using System.Threading;  

  47. namespace Multi_castDelegate  

  48. {  

  49. /// <summary> 

  50. /// Summary description for Test.  

  51. /// </summary> 

  52. public class Test  

  53. {  

  54. public static void Main()  

  55. {  

  56. MyClassDelegate.StringDelegate  

  57. Writer,Logger,Transmitter;  

  58. MyClassDelegate.StringDelegate  

  59. myDelegate;  

  60. Writer=new 

  61. MyClassDelegate.StringDelegate(MyClass.WriteString);  

  62. /// calling Writer  

  63. Writer("hello i am Writer just acting like Single cast");  

  64. Logger=new MyClassDelegate.StringDelegate(MyClass.logString);  

  65. ///calling Logger  

  66. Logger("hello i am Logger just acting like Single-cast");  

  67. Transmitter=new MyClassDelegate.StringDelegate(MyClass.TransmitString);  

  68. ///calling Transmitter  

  69. Transmitter("hello i am Transmitter just acting like Single-cast");  

  70. ///here mydelegate used the Combine method of System.MulticastDelegate  

  71. ///and the delegates combine  

  72. myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
    Combine(Writer,Logger);  

  73. myDelegate("used Combine");  

  74. ///here Transmitter is also added using the overloaded form of Combine  

  75. myDelegate+=Transmitter;  

  76. myDelegate("Using Overloaded Form");  

  77. ///now using the Remove method  

  78. myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
    Remove(myDelegate,Writer);  

  79. myDelegate("Without Writer");  

  80. ///overloaded Remove  

  81. myDelegate-=Transmitter;  

  82. myDelegate("Without Transmitter");  

  83. System.Threading.Thread.Sleep(2300);   

  84. }  

  85. }  

面的例子重點是看那兩個已經重載的操作符。"-="和"+="。通過上面的例子,你可以清楚的看到C#多路廣播是如何一次代理多個方法的。當然你也可以刪除掉那些你不想要的用"-="操作符就可以了。

感謝各位的閱讀,以上就是“C#多路廣播怎么實現”的內容了,經過本文的學習后,相信大家對C#多路廣播怎么實現這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿克苏市| 孟津县| 离岛区| 武穴市| 正宁县| 长子县| 昂仁县| 乳山市| 岳池县| 兴和县| 彭州市| 沙河市| 封开县| 吉隆县| 岐山县| 东乌珠穆沁旗| 远安县| 微博| 宝坻区| 吉安县| 左贡县| 西和县| 裕民县| 瑞丽市| 墨竹工卡县| 察雅县| 丘北县| 通榆县| 金坛市| 柳林县| 永胜县| 梅河口市| 清涧县| 丽水市| 延吉市| 湟源县| 淮阳县| 塔城市| 靖宇县| 澄迈县| 南和县|