一.委托(Delegate)
1.委托(Delegate)简介
最近天气晴雨不定,你因为害怕打游戏时忘记在下雨时收衣服或者在天晴时把衣服挂出去,于是你委托好友小明在天气发生变化时打电话通知你,这就是一种委托.
下面是这种委托的实例代码
//定义一个继承自Delegate类的子类小明,这之后小明就具备被委托的属性
//public为公开,void为返回类型,XiaoMing为类名,(string msg)为传递给注册的方法的参数
public delegate void XiaoMing(string msg);
class Me
{
//public代表聆听小明的信号是公开的方法,以便小明访问
//static是为了固定ListenToXiaoMing在内存中的入口以便小明能够找到该方法的入口
public static void ListenToXiaoMing(string msg)
{
if(msg == "Rain")
{
Console.WriteLine("下雨了!小明收衣服了!");
}
else if(msg == "Sunny")
{
Console.WriteLine("天晴了!小明晒衣服了!");
}
}
}
class Program
{
static void Main(string[] args)
{
//初始化一个XiaoMing类的实体xiaoMing
//将我的ListenToXiaoMing注册在xiaoMing上
//相当于我与小明约定下雨后小明就通知我做出行动(调用ListenToXiaoMing)
XiaoMing xiaoMing = Me.ListenTo