撕开奶罩揉吮奶头玩大胸直播,亚洲色无码专线精品观看,太平公主秘史在线观看免费,国产精品久久毛片

南京北大青鳥

全國咨詢電話:15195455103

三分鐘了解北大青鳥
當(dāng)前位置:南京北大青鳥 > 學(xué)習(xí)園地 > 編程技巧

.NET自定義事件小結(jié)

來源:南京北大青鳥張府園校區(qū)? ? ? 作者:IT教育 ? ??

關(guān)于事件各位應(yīng)該都不陌生,相信每個(gè)程序員都可以拍著胸脯說“事件?我知道啊~”,可如何自定義事件?也許有人心中就不是那么底氣十足了。

關(guān)于事件各位應(yīng)該都不陌生,相信每個(gè)程序員都可以拍著胸脯說“事件?我知道啊~”,可如何自定義事件?也許有人心中就不是那么底氣十足了。還是老規(guī)矩吧,高手繞行~

用很多地方都被引用到泛濫的一個(gè)例子來寫吧,始作俑者就不去深究了。描述是這樣的:小偷進(jìn)入時(shí),事件發(fā)送者(貓)發(fā)送貓叫事件(自定義),(事件接收者)主人訂閱貓叫事件并處理(抓住小偷),事件的參數(shù)傳遞的是小偷的數(shù)量。

下面就給出實(shí)現(xiàn)的具體步驟---已經(jīng)在代碼注釋中標(biāo)明,以供各位博友抽象出自定義事件的流程。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 自定義事件
{
    //http://www.cnblogs.com/DebugLZQ
    //自定義事件步驟的示例代碼

    //0.定義事件傳遞的參數(shù)
    class AlarmEventArgs : EventArgs
    {
        public  int numberOfThief;
        public AlarmEventArgs(int n)
        {
            numberOfThief = n;
        }
    }
    //事件的發(fā)出者
    class Dog
    {
        //1.聲明事件的委托
        public delegate void AlarmEventHandler(Object sender, AlarmEventArgs e);
        //2.聲明事件
        public event AlarmEventHandler Alarm;
        //3.引發(fā)事件的函數(shù)
        public void OnAlarm(AlarmEventArgs e)
        {
            if (this.Alarm != null)
            {
                Console.WriteLine("The dog is Wangwang...");
                this.Alarm(this, e);               
            }
        }
    }
    //事件的訂閱者
    class Host
    {
        //4.訂閱事件
        public Host(Dog dog)
        {
            dog.Alarm += new Dog.AlarmEventHandler(HostHandleEvent);
        }
        //5.事件處理程序
        public void HostHandleEvent(Object sender, AlarmEventArgs e)
        {
            Console.WriteLine("Host caught the thief! The sum is "+e.numberOfThief);
        }
    }
   
    class Program
    {
        static void Main(string[] args)
        {
           
            Console.WriteLine("Program is running...");

            Dog dog = new Dog();
            Host host = new Host(dog);

            Console.WriteLine("Someone is coming...");
            //6.在合適的時(shí)候引發(fā)事件
            AlarmEventArgs alarmEventArgs = new AlarmEventArgs(3);
            dog.OnAlarm(alarmEventArgs);

            Console.ReadKey();
        }
    }
}

程序運(yùn)行結(jié)果如下:

北大青鳥軟件學(xué)校職業(yè)教育

例子很簡單,我是按照順序?qū)懙?,在代碼中也有詳細(xì)的步驟注釋,就不多講了。一般經(jīng)驗(yàn)來講,自定義的東西往往是很有用的,而往往也不是人人能夠掌握。


分享到:
近期文章

搶試聽名額

名額僅剩66名

教育改變生活

WE CHANGE LIVES