public class Calculator { //定义计算器事件CalculateEventArgs public class CalculateEventArgs:EventArgs { //只读数据变量 public readonly Int32 x, y; //构造函数-在这里输入数据变量 public CalculateEventArgs(Int32 x,Int32 y) { this.x=x; this.y=y; } }
//声明事件委托,名称为CalculateEventHandler //注意前面没有说,多播的委托多数需要返回值是void public delegate void CalculateEventHandler(object Sender, CalculateEventArgs e);
//这是计算器类的事件字段,用于外部绑定 public event CalculateEventHandler MyCalculate;
//定义一个消息触发器-触发消息用的 public class CalculatorManager { //消息通知方法1,定义跟Calculator.CalculateEventArgs一样 public void Add(object Sender,Calculator.CalculateEventArgs e) { System.Windows.Forms.MessageBox.Show("加法结果:" + (e.x + e.y)); } //消息通知方法2,定义跟Calculator.CalculateEventArgs一样 public void Subtract(object Sender, Calculator.CalculateEventArgs e) { System.Windows.Forms.MessageBox.Show("减法结果:" + (e.x - e.y)); } }
...调用代码
private void button4_Click(object sender, EventArgs e) { //定义计算器对象 Calculator cal = new Calculator(); //定义计算器事件触发器对象 CalculatorManager cm = new CalculatorManager();