.net 事件一 模仿Button按鈕
阿新 • • 發佈:2018-08-17
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按鈕