程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#事件的實現

C#事件的實現

編輯:C#入門知識

  事件是C#中一個重要的內容,MSDN上有一個自定義事件的演示示例。我看了半天有點暈,所以新建了一個winform工程添加了一個按鈕,然後找出調用的程序,一對比做了一個類似的示例,就明白了。看代碼有時候比看文檔來得更快。 所以還是一貫的原則,來干的,不來稀的。   [csharp]   using System;      namespace TestEventArgs   {       /// <summary>       /// 這個類對應於EventArgs,做對比學習。       /// 添加兩個內容:info1,info2。       /// </summary>       public class MyEventArgs : EventArgs       {           private String info1;           private UInt32 info2;              public MyEventArgs(String info1, UInt32 info2)           {               this.info1 = info1;               this.info2 = info2;           }              public String Info1           {               get { return this.info1; }               set { this.info1 = value; }           }              public UInt32 Info2           {               get { return this.info2; }               set { this.info2 = value; }           }       }          /// <summary>       /// 仿真Button按鈕       /// </summary>       public class MyButton       {           public delegate void MyEvnetHandler(object sender, MyEventArgs e);           /// <summary>           /// 按鈕點擊的次數計數器           /// </summary>           public static UInt32 clicked_num = 0;           public event MyEvnetHandler MyClick;              public void 觸發()           {               MyEventArgs arg = new MyEventArgs(DateTime.UtcNow.ToString(), ++clicked_num);               MyClick(this, arg);           }       }          /// <summary>       /// 仿真Form窗體       /// </summary>       public class MyForm       {           public MyButton 按鈕;           public MyForm()           {               按鈕 = new MyButton();               按鈕.MyClick += new MyButton.MyEvnetHandler(this.button_Clicked);           }                 public void button_Clicked(object sender, MyEventArgs e)           {               Console.WriteLine("button clicked(sender is:" + sender.ToString() + "; info1 = "                   + e.Info1 + "; info2 = " + e.Info2);           }       }          class Program       {           static void Main(string[] args)           {               MyForm 窗體 = new MyForm();               for (int i = 0; i < 10; i++ )               {      www.2cto.com                 窗體.按鈕.觸發();                   System.Threading.Thread.Sleep(500);               }               Console.WriteLine("Press any key to continue...");               Console.ReadKey();           }       }   }     不同的地方: 1 本示例中delegate myevnethandler是mybutton類內部成員,在系統中eventhander是system命名空間下的一個成員。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved