.net 事件一 模仿Button按钮

最先开始接触到命令是webfrom的时候,那个时候拖拉控件,然后直接写click事件,可能是先入为主的思想,

再加上对于事件的运用也太少,导致接触到命令模式,CQRS,发布订阅模式的时候对于事件这一块不是理解,

所以加深一下理解,这里我们用控制台模拟一个button按钮

 1 public  class Button
 2     {
 3         //定义调用事件的委托
 4         public delegate void ButtonDelegate( string e);
 5 
 6         //按钮单机事件
 7         private event ButtonDelegate ButtionClick;
 8 
 9         //事件的添加删除
10         public event ButtonDelegate Click_Event
11         {
12             add { this.ButtionClick += value; }
13             remove { this.ButtionClick -= value; }
14         }
15 
16         //触发事件
17         public void RaiseClick(string args)
18         {
19             ButtionClick?.Invoke(args);
20         }
21     }

在事件也是类的成员,他和属性不一样,操作事件是通过add和remove

 1  class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Button b = new Button();
 6             b.Click_Event += new Button.ButtonDelegate(Button_Click);
 7             b.Click_Event += new Button.ButtonDelegate(Button_Click1);
 8 
 9             b.RaiseClick("Hello");
10 
11             Console.ReadLine();
12         }
13 
14         private static void Button_Click(string args)
15         {
16             Console.WriteLine(args);
17         }
18 
19         private static void Button_Click1( string args)
20         {
21             Console.WriteLine(args);
22         }

这里简单的介绍了怎么定义事件,下一步我们做个一简单的发布订阅。

 

posted on 2018-08-17 00:10  马利克  阅读(222)  评论(0编辑  收藏  举报

导航