【C#】事件,委託3點詳解

來源:互聯網
上載者:User

標籤:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 事件委託1{    //總結    //1.事件(event)是基於委託(delegate)的,所以想要定義事件,首先要有1個委託類型,做支撐    //2.如果有了事件,要去尋找這個事件什麼時候被觸發,也就是這個事件什麼時候被調用了(事件名稱();)    //3.事件觸發的時候,支撐這個事件的委託指向了哪個方法?    public delegate void MyDel(); //定義1個無參無返回的委託類型,這裡是總結裡面的第1個點的後半部分!!!    class OnOff    {        public event MyDel t; //1個基於MyDel委託類型的事件,這裡是總結裡面的第1個點的前半部分!!!        /// <summary>        /// 開啟開關        /// </summary>        public void On()        {            t(); //觸發這個事件,這裡是總結裡面的第2個點!!!        }                /// <summary>        /// 這裡應該算是事件的處理器        /// </summary>        public void lightOn()        {            Console.WriteLine("燈亮了");        }        }        class Program    {        /// <summary>        /// 主函數        /// </summary>        /// <param name="args"></param>        static void Main(string[] args)        {            OnOff o = new OnOff();            o.t += new MyDel(o.lightOn); //這裡是總結裡面的第3個點!!!            Console.WriteLine("我要開啟開關了啊");            o.On(); //調用這個函數的時候會觸發t事件            Console.ReadLine();        }    }}

  

【C#】事件,委託3點詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.