C#使用系统自带的委托写事件
class Goumai
{
public event EventHandler Myevent;//用系统自带的委托,定义一个事件
public void Zhixing(string name)//定义一个执行事件的方法,name为要获取到我们发布的消息的值
{
if(Myevent !=null)
{
Myevent(name,new EventArgs());//因为系统中的委托有两个值public delegate void EventHandler(object sender, EventArgs e);根据委托的性质来,必须也传入两个值
}
}
}
class Qugouwu
{
public object name;
public Qugouwu(string name)//构造函数,并给它值
{
this.name = name;
}
public void Maidaole(object name,EventArgs e)//定义一个要执行的方法
{
Console.WriteLine(name);//输出我们传入的参数
Console.WriteLine("买到了"+this.name);
}
}
class Pr
{
static void Main(string[] args)
{
Goumai goumai = new Goumai();
Qugouwu qugouwu = new Qugouwu("苹果");
goumai.Myevent += new EventHandler(qugouwu.Maidaole);
goumai.Zhixing("去买");
}
}
除了改变我们自己写的委托函数和多了一个值以外基本和自定义的写法没有什么区别。