委托

代理:委托;

指向方法的指针。
代理与它指向的方法,往往不是一个人写出来的

做委托的四大步:
1.声明代理类型
public delegate void WangYeDelegate(sring s);
2.定义代理变量
public [event] WangYeDelegate ZhuanDong;
3.把代理挂到相应的方法上去。
xxx.ZhangDong += xxx.yyyyy;
4.编写代理要调用的方法。
if(ZhuangDong!=null)
{
ZhuangDong();
}


代理与类、接口是同一个层次的。
代理与类思想上完全一样。

//定义类的类型
public class Ren
{
string Name;
int Age;
public void Speak()
{
....
}
}
//定义类型的变量
private Ren r;
//实例化对象
r = new Ren();
//调用对象。
r.Speak();

class House
{
private Mouse m = new Mouse();
private Cat c = new Cat();
private Human h = new Human();
public House()
{
c.MaoJiao += m.Runaway;
c.MaoJiao += Human.Wake;
}
public void BenginEvent()
{
c.Cry();
}
public void static void Main()
{
House h = new House();
h.BeingEvent();
}
}
class Cat()
{
public delegate void MaoJiaoDelegate();
public event MaoJiaoDelegate MaoJiao;
public void Cry()
{
Console.WriteLine("咪唔");
if(MaoJiao!=null)
{
MaoJiao();
}
}
}
class Mouse()
{
public void Runaway()
{
}
}
class Human()
{
public void Wake()
{
}
}

原文地址:https://www.cnblogs.com/mxx0426/p/4352758.html