1. 程式人生 > >.net 事件一 模仿Button按鈕

.net 事件一 模仿Button按鈕

ise write spa del .net 可能 mov his 單機

最先開始接觸到命令是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 }

這裏簡單的介紹了怎麽定義事件,下一步我們做個一簡單的發布訂閱。

.net 事件一 模仿Button按鈕