国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

關于c#中的事件

2019-11-14 13:33:07
字體:
來源:轉載
供稿:網友

原文鏈接http://blog.csdn.net/joyhen/article/details/8500211

 

最近在看委托,然后看到事件,以前一直很模糊,關于事件的觸發者和響應者的關聯。貼一個簡單的例子:

1.新建一個類Control.cs

 

  1. using System;  
  2.   
  3. namespace EventComplex  
  4. {  
  5.     /* 
  6.      * C#中的事件處理實際上是一種具有特殊簽名的delegate 
  7.      */  
  8.     public class Control  
  9.     {  
  10.         /// <summary>  
  11.         /// 代表事件發送者  
  12.         /// </summary>  
  13.         /// <param name="sender">代表事件發送者</param>  
  14.         /// <param name="e">事件參數類  
  15.         /// <remarks>用來包含與事件相關的數據,所有的事件參數類都必須從System.EventArgs類派生</remarks>  
  16.         /// </param>  
  17.         public delegate void MyEventHandler(object sender, MyEventArgs e);//System.EventArgs e  
  18.         public event MyEventHandler MyEvent;  
  19.   
  20.         public Control()  
  21.         {  
  22.             this.MyEvent += new MyEventHandler(RaiseSomeEvent);  
  23.         }  
  24.   
  25.         /// <summary>  
  26.         /// 一個事件  
  27.         /// </summary>  
  28.         public void RaiseSomeEvent(object sender, MyEventArgs e)  
  29.         {  
  30.             Console.WriteLine("hello " + e.ParamName);  
  31.             Console.ReadLine();  
  32.         }  
  33.   
  34.         public void RiseSomeEvent()  
  35.         {  
  36.             //System.EventArgs e = new System.EventArgs();  
  37.             Console.Write("Please input 'Name':");  
  38.             string _param = Console.ReadLine();//ReadLine:按下回車以后才讀取,然后觸發MyEvent事件  
  39.   
  40.             //if (_param.Equals("jon"))//在用戶輸入jon的情況下觸發事件,否則不觸發   
  41.             MyEvent(this, new MyEventArgs(_param));//MyEvent(this,e)  
  42.         }  
  43.     }  
  44.   
  45.     public class MyEventArgs : System.EventArgs  
  46.     {  
  47.         public string ParamName;  
  48.         public MyEventArgs(string _name)  
  49.         {  
  50.             ParamName = _name;  
  51.         }  
  52.     }  
  53. }  


2.我們去Main函數里面測試一下;

 

 

  1. public static void demo4()  
  2.         {  
  3.             Control ctr = new Control();  
  4.             ctr.MyEvent += new Control.MyEventHandler(ResponseSomeEvent);  
  5.             ctr.RiseSomeEvent();  
  6.         }  
  7.         public static void ResponseSomeEvent(object sender, EventArgs e)  
  8.         {  
  9.             Console.WriteLine("Some event occur!");  
  10.         }  

 

  1. static void Main(string[] args)  
  2.         {  
  3.             demo4();  
  4.         }  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泗阳县| 高要市| 建始县| 哈密市| 淮北市| 青川县| 南澳县| 怀仁县| 英德市| 盐山县| 昭通市| 耒阳市| 龙口市| 剑川县| 宝清县| 柳江县| 鹤庆县| 海丰县| 永胜县| 广水市| 蒲江县| 澄迈县| 泗阳县| 洛浦县| 虞城县| 阜宁县| 科技| 琼中| 屏山县| 长泰县| 元阳县| 乐平市| 桂东县| 平安县| 宁海县| 柳江县| 柘城县| 南和县| 永靖县| 旬邑县| 桃江县|