中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C#中實(shí)現(xiàn)自定義事件的代碼演示

2018-07-20    來源:open-open

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用
事件是C#中一個(gè)重要的內(nèi)容,MSDN上有一個(gè)自定義事件的演示示例。我看了半天有點(diǎn)暈,所以新建了一個(gè)winform工程添加了一個(gè)按鈕,然后找出調(diào)用的程序,一對比做了一個(gè)類似的示例,就明白了?创a有時(shí)候比看文檔來得更快。
using System;
 
namespace TestEventArgs
{
    /// <summary>
    /// 這個(gè)類對應(yīng)于EventArgs,做對比學(xué)習(xí)。
    /// 添加兩個(gè)內(nèi)容: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>
        /// 按鈕點(diǎn)擊的次數(shù)計(jì)數(shù)器
        /// </summary>
        public static UInt32 clicked_num = 0;
        public event MyEvnetHandler MyClick;
 
        public void 觸發(fā)()
        {
            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++ )
            {
                窗體.按鈕.觸發(fā)();
                System.Threading.Thread.Sleep(500);
            }
            Console.WriteLine("Press any key to continue...");
            Console.ReadKey();
        }
    }
}

不同的地方:
1 本示例中delegate myevnethandler是mybutton類內(nèi)部成員,在系統(tǒng)中eventhander是system命名空間下的一個(gè)成員。

標(biāo)簽: 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:C#通過遞歸實(shí)現(xiàn)文件及文件夾拷貝

下一篇:C#讀取中文文件亂碼的解方法