最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#事件訪問器詳解

 更新時間:2014年01月15日 10:11:30   作者:  
C#事件訪問器詳細解析。下面示例演示了具有訪問器的聲明.兩個訪問器都有叫做value的隱式值參數(shù),它接受實例或靜態(tài)方法的引用

我們可以通過為事件定義事件訪問器,來控制事件運算符+=、-=運算符的行為

•有兩個訪問器:add和remove
•聲明事件的訪問器看上去和聲明一個屬性差不多

下面示例演示了具有訪問器的聲明.兩個訪問器都有叫做value的隱式值參數(shù),它接受實例或靜態(tài)方法的引用

復(fù)制代碼 代碼如下:

public event EventHandler Elapsed
{
    add
    {
        //... 執(zhí)行+=運算符的代碼
    }

     remove
     {
        //... 執(zhí)行-=運算符的代碼
     }

}


聲明了事件訪問器后,事件不包含任何內(nèi)嵌委托對象.我們必須實現(xiàn)自己的機制來存儲和移除事件的方法

事件訪問器表現(xiàn)為void方法,也就是不能使用會返回值的return語句

完整示例:

復(fù)制代碼 代碼如下:

//聲明一個delegate
    delegate void EventHandler();

    class MyClass
    {
        //聲明一個成員變量來保存事件句柄(事件被激發(fā)時被調(diào)用的delegate)
        private EventHandler m_Handler = null;

        //激發(fā)事件
        public void FireAEvent()
        {
            if (m_Handler != null)
            {
                m_Handler();
            }
        }

        //聲明事件
        public event EventHandler AEvent
        {
            //添加訪問器
            add
            {
                //注意,訪問器中實際包含了一個名為value的隱含參數(shù)
                //該參數(shù)的值即為客戶程序調(diào)用+=時傳遞過來的delegate
                Console.WriteLine("AEvent add被調(diào)用,value的HashCode為:" + value.GetHashCode());
                if (value != null)
                {
                    //設(shè)置m_Handler域保存新的handler
                    m_Handler = value;
                }
            }

            //刪除訪問器
            remove
            {
                Console.WriteLine("AEvent remove被調(diào)用,value的HashCode為:" + value.GetHashCode());
                if (value == m_Handler)
                {
                    //設(shè)置m_Handler為null,該事件將不再被激發(fā)
                    m_Handler = null;
                }
            }

        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass obj = new MyClass();
            //創(chuàng)建委托
            EventHandler MyHandler = new EventHandler(MyEventHandler);
            MyHandler += MyEventHandle2;
            //將委托注冊到事件
            obj.AEvent += MyHandler;
            //激發(fā)事件
            obj.FireAEvent();
            //將委托從事件中撤銷
            obj.AEvent -= MyHandler;
            //再次激發(fā)事件
            obj.FireAEvent();


            Console.ReadKey();
        }

        //事件處理程序
        static void MyEventHandler()
        {
            Console.WriteLine("This is a Event!");
        }

        //事件處理程序
        static void MyEventHandle2()
        {
            Console.WriteLine("This is a Event2!");
        }
    }

相關(guān)文章

  • c#實現(xiàn)md5加密示例

    c#實現(xiàn)md5加密示例

    這篇文章主要介紹了md5加密,加密結(jié)果可以為32位、48位、64位,只要修改一下參數(shù)就可以實現(xiàn)
    2014-01-01
  • C#實現(xiàn)自定義FTP操作封裝類實例

    C#實現(xiàn)自定義FTP操作封裝類實例

    這篇文章主要介紹了C#實現(xiàn)自定義FTP操作封裝類,涉及C#操作FTP的連接、傳輸、下載等操作的實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-03-03
  • 使用HttpHanlder處理404:File not found的問題

    使用HttpHanlder處理404:File not found的問題

    本篇文章小編為大家介紹。使用HttpHanlder處理404:File not found的問題。需要的朋友參考下
    2013-04-04
  • Unity給物體添加多個Tag的實現(xiàn)

    Unity給物體添加多個Tag的實現(xiàn)

    這篇文章主要介紹了Unity給物體添加多個Tag的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • C#操作windows系統(tǒng)進程的方法

    C#操作windows系統(tǒng)進程的方法

    這篇文章主要介紹了C#操作windows系統(tǒng)進程的方法,涉及C#針對windows操作系統(tǒng)進程的創(chuàng)建與關(guān)閉的技巧,需要的朋友可以參考下
    2015-04-04
  • C#生成互不相同隨機數(shù)的實現(xiàn)方法

    C#生成互不相同隨機數(shù)的實現(xiàn)方法

    這篇文章主要介紹了C#生成互不相同隨機數(shù)的實現(xiàn)方法,文中詳細描述了C#生成互不相同隨機數(shù)的各個步驟及所用到的函數(shù),非常具有借鑒價值,需要的朋友可以參考下
    2014-09-09
  • C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)

    C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)

    C#導(dǎo)出生成excel文件的方法小結(jié)(xml,html方式)。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • Unity UGUI的Image圖片組件使用詳解

    Unity UGUI的Image圖片組件使用詳解

    這篇文章主要為大家介紹了Unity UGUI的Image圖片組件使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • 一文帶你快速學會C#中WinForm框架的使用詳解

    一文帶你快速學會C#中WinForm框架的使用詳解

    WinForm是一門非常經(jīng)濟實惠的技術(shù),就是說,可以在短時間內(nèi)學會,并迅速借此進行項目開發(fā)。本文就來和大家聊聊WinForm框架的使用方法,希望對大家有所幫助
    2023-02-02
  • 跳一跳自動跳躍C#代碼實現(xiàn)

    跳一跳自動跳躍C#代碼實現(xiàn)

    這篇文章主要為大家詳細介紹了跳一跳自動跳躍C#代碼實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論

永吉县| 吴川市| 射阳县| 万荣县| 浮山县| 洪雅县| 乐陵市| 博客| 寿光市| 全州县| 鄯善县| 闸北区| 吴江市| 太仓市| 无锡市| 铜陵市| 庐江县| 库伦旗| 徐汇区| 井陉县| 芜湖县| 宁安市| 桃园县| 河北区| 曲靖市| 东山县| 黑河市| 砚山县| 云南省| 阳原县| 微博| 桂平市| 平昌县| 称多县| 绥化市| 历史| 武邑县| 铜山县| 株洲县| 府谷县| 大理市|