乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      c# 事件 EventHandler

       行走在理想邊緣 2019-03-21
       1     /// <summary>
       2     /// 事件:EventHanler
       3     /// 用戶在單擊win窗口中的如按鈕,復(fù)選框等,就會引發(fā)事件,我們要寫代碼去處理這些事件。實現(xiàn) 處理事件的 事件處理程序
       4     /// 在.Net里,有委托實現(xiàn)事件,具有事件的對象為:發(fā)布者。訂閱事件(處理事件)的為訂閱者。
       5     /// 當(dāng)對象提供事件時,它會定義一個委托,則希望處理該事件的對象必須為這個委托提供函數(shù),該委托稱為事件,而處理該委托的函數(shù)稱為事件處理程序
       6     /// 如,當(dāng)你創(chuàng)建button并雙擊它時,就會自動添加一個事件處理程序。
       7     /// </summary>
       8     class Program
       9     {
      10         /// <summary>
      11         /// 下面是一個Timer類處理事件
      12         /// </summary>
      13         /// <param name="args"></param>
      14         static void Main(string[] args)
      15         {
      16             Timer t=new Timer(1000);//對象t
      17             t.Elapsed+=new ElapsedEventHandler(t_ela);//對象t的一個事件,t_ela為事件t.Elapsed的處理程序
      18             t.Start();
      19             Console.ReadLine();
      20         }
      21         static void t_ela(object sender, ElapsedEventArgs e)//相關(guān)的簽名一定要一樣。
      22         {
      23             Console.SetCursorPosition(0,0);
      24             Console.WriteLine(DateTime.Now);
      25         }
      26     }
       1         /// <summary>
       2         /// 下面是一個FileSystemWatcher類處理事件
       3         /// </summary>
       4         /// <param name="args"></param>
       5         static void Main(string[] args)
       6         {
       7             FileSystemWatcher fSysW=new FileSystemWatcher()
       8                 {
       9                     Path = @"c:\",
      10                     Filter = "*.txt"
      11                 }; 
      12             //---wire up the event handlers----
      13             fSysW.Deleted += new FileSystemEventHandler(fSysW_Deleted);
      14             fSysW.Renamed += new RenamedEventHandler(fSysW_Renamed);//這個事件有些特別
      15             fSysW.Changed += new FileSystemEventHandler(fSysW_Changed);
      16             fSysW.Created += new FileSystemEventHandler(fSysW_Created);
      17 
      18             fSysW.EnableRaisingEvents = true;
      19             Console.ReadLine();
      20         }
      21         static void fSysW_Deleted(object sender, FileSystemEventArgs e)
      22         {
      23             Console.WriteLine("fSysW_Deleted" + e.FullPath);
      24         }
      25         static void fSysW_Renamed(object sender, RenamedEventArgs e)
      26         {
      27             Console.WriteLine("fSysW_Renamed" + e.FullPath);
      28         }
      29         static void fSysW_Changed(object sender, FileSystemEventArgs e)
      30         {
      31             Console.WriteLine("fSysW_Changed" + e.FullPath);
      32         }
      33         static void fSysW_Created(object sender, FileSystemEventArgs e)
      34         {
      35             Console.WriteLine("fSysW_Created" + e.FullPath);
      36         }
       1         /// <summary>
       2         /// 下面是一個自定義類處理事件
       3         /// 
       4         /// </summary>
       5         /// <param name="args"></param>
       6         private static void Main(string[] args)
       7         {
       8             AlarmClock c=new AlarmClock()                           //創(chuàng)建這個類的對象
       9             {
      10                 AlarmTime = new DateTime(2013, 4, 22, 21, 04, 0, 0) //初使化它的時間
      11             };
      12             c.Start();                                              //開始里面的Timer
      13             //調(diào)用里面的事件,這個事件是在時間到了的時候調(diào)用,而具體請看類
      14             c.TimesUp+=new EventHandler(c_TimesUp);                 
      15             Console.ReadLine();
      16         }
      17         static void c_TimesUp(object sender, EventArgs e)
      18         {
      19             Console.WriteLine("Times up!");
      20         }
      21 
      22       
      23     }
      24 
      25     class AlarmClock
      26     {
      27         private Timer t;
      28         public DateTime AlarmTime { get; set; }
      29         public void Start()
      30         {
      31             t.Start();
      32         }
      33         public AlarmClock()
      34         {
      35             t=new Timer(100);
      36             t.Elapsed+=new ElapsedEventHandler(t_Elapsed);
      37         }
      38         void t_Elapsed(object sender, ElapsedEventArgs e)
      39         {
      40             if (DateTime.Now >= this.AlarmTime)
      41             {
      42                 onTimeUp(new EventArgs());          //當(dāng)時間到了的時候,調(diào)用類的事件
      43                 t.Stop();
      44             }
      45         }
      46         //EventHandler是預(yù)定義的委托,該語句定義TimesUp為類的事件
      47         public event EventHandler TimesUp;
      48         protected virtual void onTimeUp(EventArgs e)//注意,上面那個和下面這個是一體的
      49         {
      50             if (TimesUp != null)                    //當(dāng)時間到了的事件,就會調(diào)用這個事件,而具體是怎么實現(xiàn)的,由這個類的對象決定。
      51                 TimesUp(this, e);
      52         }
       1         /// <summary>
       2         /// 事件與委托,這是一個非常重要的東西
       3         /// 學(xué)好了還要學(xué)會怎么用才對!
       4         /// </summary>
       5         /// <param name="args"></param>
       6         private static void Main(string[] args)
       7         {
       8             AlarmClock c=new AlarmClock()                           //創(chuàng)建這個類的對象
       9             {
      10                 Message = "Meeting with customer",
      11                 AlarmTime = new DateTime(2013, 4, 22, 22, 01, 0, 0) //初使化它的時間
      12             };
      13             c.Start();                                              //開始里面的Timer
      14             //調(diào)用里面的事件,這個事件是在時間到了的時候調(diào)用,而具體請看類
      15             //其中,TimesUp對應(yīng)事件名稱:
      16             c.TimesUp+=new AlarmClockEventHandler(c_TimesUp);                 
      17             Console.ReadLine();
      18         }
      19         static void c_TimesUp(object sender, AlarmClockEventArgs e)
      20         {
      21             Console.WriteLine(DateTime.Now.ToShortTimeString()+" : "+e.Message);//可以包含參數(shù)了!
      22         }
      23     }
      24 
      25     //定義一個全新的事件類
      26     public class AlarmClockEventArgs:EventArgs
      27     {
      28         public AlarmClockEventArgs(string Message)//構(gòu)造
      29         {
      30             this.Message = Message;
      31         }
      32         public string Message { get; set; }
      33     }
      34 
      35     //定義一個委托,其中包含有上面的事件類型作參數(shù),難道事件的承載都是委托??!!
      36     public delegate void AlarmClockEventHandler(object sender, AlarmClockEventArgs e);
      37 
      38     class AlarmClock
      39     {
      40         private Timer t;
      41         public DateTime AlarmTime { get; set; }
      42         public string Message { get; set; }
      43 
      44         public AlarmClock()
      45         {
      46             t = new Timer(100);
      47             t.Elapsed += new ElapsedEventHandler(t_Elapsed);
      48         }
      49         public void Start()
      50         {
      51             t.Start();
      52         }
      53       
      54         void t_Elapsed(object sender, ElapsedEventArgs e)
      55         {
      56             if (DateTime.Now >= this.AlarmTime)
      57             {
      58                 onTimeUp(new AlarmClockEventArgs(this.Message));          //當(dāng)時間到了的時候,調(diào)用類的事件
      59                 t.Stop();
      60             }
      61         }
      62         //AlarmClockEventHandler是預(yù)定義的委托,該語句定義TimesUp為類的事件
      63         public event AlarmClockEventHandler TimesUp;
      64         protected virtual void onTimeUp(AlarmClockEventArgs e)//注意,上面那個和下面這個是一體的
      65         {
      66             if (TimesUp != null)                    //當(dāng)時間到了的事件,就會調(diào)用這個事件,而具體是怎么實現(xiàn)的,由這個類的對象決定。
      67                 TimesUp(this, e);
      68         }
      69     }    

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多