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

.net自定義事件示例分享

編輯:ASP.NET基礎

1、新建一個控制台應用程序TestDelegate,本項目主要實現:熱水器加熱,報警器監控,當熱水溫度達到80度的時候報警器報警這樣一個簡單的事件處理程序

2、定義委托處理程序

復制代碼 代碼如下:
public delegate void PlayGameHandler(object sender, System.EventArgs e);

3、添加一個報警器類,報警方法只有在溫度超過80度的時候會被調用

復制代碼 代碼如下:
// 負責報警的人
    public class 報警器
    {
        public 報警器()
        {
            Console.WriteLine("生成報警器...");
        }
        public void 報警(object sender, EventArgs e)
        {
            System.Threading.Thread.Sleep(100);//休息0.1秒
            Console.WriteLine("滴滴。。。。溫度超過80度...");
        }
    }

4、添加一個熱水器類,利用循環加熱熱水器,從一度增加到100度,當溫度超過80度時候觸發事件報警

復制代碼 代碼如下:
// 如果加熱,則引發事件
    public class 熱水器
    {
        // 先定義一個事件,這個事件表示“熱水器”在加熱。
        public event PlayGameHandler PlayGame;
        public 熱水器()
        {
            Console.WriteLine("生成熱水器....");
        }

        public void 加熱()
        {
            Console.WriteLine("開始加熱了.....");
            System.EventArgs e = new EventArgs();
            for (int i = 1; i < 101;i++)//溫度每增加一度調觸發一次事件
            {
                System.Threading.Thread.Sleep(100);//休息0.1秒
                Console.WriteLine(i.ToString()+"度");
                if (PlayGame != null)
                {
                    if(i>=80)//當溫度大於80度
                    PlayGame(this, e);//觸發事件
                }
            }

        }
    }

5、客戶端開始調用

復制代碼 代碼如下:
public class Program
    {
        //[STAThread]
        public static void Main(string[] args)
        {
            Console.WriteLine("場景開始了....");
            報警器 w = new 報警器();
            熱水器 z = new 熱水器();

            // 指定監視
            z.PlayGame += new PlayGameHandler(w.報警);
            System.Threading.Thread.Sleep(1000);
            // 開始加熱
            z.加熱();
            Console.WriteLine("場景結束...");
            Console.ReadLine();
        }

    }




大家運行一下可以看到更多數據顯示

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