//一般来说,委托的 定义和执行 是在一个类里的, 绑定事件 在另一个类里,通过实例化 发布者 a,然后用 a绑定要执行的事件。
namespace delegatetest
{
//订阅者
public class mainform
{
//具体要执行的方法
public void addproduct(string prodid, string prodname, int num)
{
///....
}
//执行订阅的事件
public void click()
{
//PDA程序是通过反射加载的,而且订阅了多个事件,通过判断继承的接口。
//实例化发布者
subform sub = new subform();
//订阅事件
sub.addp += addproduct;
}
}
//发布者
public class subform
{
//声明委托
public delegate void AddProduct(string prodid, string prodname, int num);
//实例化 委托
public AddProduct addp;
//告知订阅者事件
public void click()
{
//执行委托
addp("", "", 2);
}
}
}