这篇文章主要讲解了“C#多路广播怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#多路广播怎么实现”吧!
创新互联建站拥有10余年的建站服务经验,在此期间,我们发现较多的客户在挑选建站服务商前都非常的犹豫。主要问题集中:在无法预知自己的网站呈现的效果是什么样的?也无法判断选择的服务商设计出来的网页效果自己是否会满意?创新互联建站业务涵盖了互联网平台网站建设、移动平台网站制作、网络推广、按需定制等服务。创新互联建站网站开发公司本着不拘一格的网站视觉设计和网站开发技术相结合,为企业做网站提供成熟的网站设计方案。
一个代理同时代理几个方法。就是我们前面说到的那样,你去建造房子,现在要不仅仅是建造住宅,还的去建造花园等等其它建筑物。可是它们都是在建造房子,传递的参数也相同返回值的类型也相同都是房屋。那么我们为什么不找一个代理人来完成这样的任务呢?把这些事物交由他一个人来完成不是可以节省我们很多的时间和金钱。是的我们可以那样做System。MulticastDelegate 实际上在.net framework中你还可以找到这个类,多路代理MSDN上翻译成C#多路广播。事实上它还重载了操作符+=。其实C#多路广播和单路代理在使用方法上区别不大。你可以看下面的例子。
using System;
namespace Multi_castDelegate
{
///
/// Summary description for Class1.
///
class MyClassDelegate
{
///
/// The main entry point for the application.
///
public delegate string IntDelegate(string s);
}
}
using System;
namespace Multi_castDelegate
{
///
/// Summary description for MyImplementingClass.
///
public class MyClass
{
public MyClass()
{
}
public static string WriteString(string s)
{
Console.WriteLine("Writing string");
return "null";
}
public static string logString(string s)
{
Console.WriteLine("loging string");
return "null";
}
public static string TransmitString(string s)
{
Console.WriteLine("Transmitting string");
return "null";
}
}
}
The Main class:
using System;
using System.Threading;
namespace Multi_castDelegate
{
///
/// Summary description for Test.
///
public class Test
{
public static void Main()
{
MyClassDelegate.StringDelegate
Writer,Logger,Transmitter;
MyClassDelegate.StringDelegate
myDelegate;
Writer=new
MyClassDelegate.StringDelegate(MyClass.WriteString);
/// calling Writer
Writer("hello i am Writer just acting like Single cast");
Logger=new MyClassDelegate.StringDelegate(MyClass.logString);
///calling Logger
Logger("hello i am Logger just acting like Single-cast");
Transmitter=new MyClassDelegate.StringDelegate(MyClass.TransmitString);
///calling Transmitter
Transmitter("hello i am Transmitter just acting like Single-cast");
///here mydelegate used the Combine method of System.MulticastDelegate
///and the delegates combine
myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
Combine(Writer,Logger);myDelegate("used Combine");
///here Transmitter is also added using the overloaded form of Combine
myDelegate+=Transmitter;
myDelegate("Using Overloaded Form");
///now using the Remove method
myDelegate=(MyClassDelegate.StringDelegate)System.Delegate.
Remove(myDelegate,Writer);myDelegate("Without Writer");
///overloaded Remove
myDelegate-=Transmitter;
myDelegate("Without Transmitter");
System.Threading.Thread.Sleep(2300);
}
}
}
面的例子重点是看那两个已经重载的操作符。"-="和"+="。通过上面的例子,你可以清楚的看到C#多路广播是如何一次代理多个方法的。当然你也可以删除掉那些你不想要的用"-="操作符就可以了。
感谢各位的阅读,以上就是“C#多路广播怎么实现”的内容了,经过本文的学习后,相信大家对C#多路广播怎么实现这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!