public class Program |
02 | { |
03 | //需要监控的字段 |
04 | private int myValue; |
05 | |
06 | //属性设置,此处调用了事件触发函数 |
07 | public bool MyValue |
08 | { |
09 | get { return myValue; } |
10 | set |
11 | { |
12 | //如果变量改变则调用事件触发函数 |
13 | if (value!=myValue) |
14 | { |
15 | WhenMyValueChange(); |
16 | } |
17 | myValue = value; |
18 | } |
19 | } |
20 | |
21 | //定义的委托 |
22 | public delegate void MyValueChanged( object sender, EventArgs e); |
23 | //与委托相关联的事件 |
24 | public event MyValueChanged OnMyValueChanged; |
25 | |
26 | //构造函数初始化初值并绑定一个事件处理函数 |
27 | public Program() |
28 | { |
29 | myValue = 0; |
30 | OnMyValueChanged += new MyValueChanged(afterMyValueChanged); |
31 | |
32 | } |
33 | |
34 | //事件处理函数,在这里添加变量改变之后的操作 |
35 | private void afterMyValueChanged( object sender, EventArgs e) |
36 | { |
37 | //do something |
38 | } |
39 | |
40 | //事件触发函数 |
41 | private void WhenMyValueChange() |
42 | { |
43 | if (OnMyValueChanged != null ) |
44 | { |
45 | OnMyValueChanged( this , null ); |
46 | } |
47 | } |
48 | } |