C#事件-什麼是事件

來源:互聯網
上載者:User

每天,我們的身邊都在發生各種各樣的新聞和事件,有讓人不快的事件:跟女朋友分手了,國足又輸了,飛機失事了,海地地震了……也有幸運的事件:考試拿了個高分,申雪趙宏博拿到冠軍了……等等。

什麼是事件?

這個問題曾經讓我十分困擾,在《C#進階編程第6版》中,對事件是這樣說的:事件表示C#中已定義的一個對象,即處理通知過程的對象。可是這樣說未免抽象,對於像我這樣的初學者往往還是難以理解。而我的理解是,事件是處理事件的對象感興趣的,能夠感知或捕獲到一種事物狀態的改變。說白了,事件即改變。哲學上說,事物的運動是永恒的,靜止是相對的。永恒的運動意味著事物本身在發生著改變,所以無時無刻,我們生活的這個世界和宇宙都有無窮的改變在發生,但是,這當中的絕大多數對你來說並不是事件,秘魯總統死了,對秘魯全國所有的人來說或許是一個事件,因為他們關心,可是對課堂正在聽課全然不知的你來說就不是,除非你聽到了這樣一個新聞,開始關注,那麼這個變化對你來說就是一個事件。所以,在這所有的變化中,你能捕獲到的,感興趣的變化,對你來說,就是一個事件。

那麼,把事件這個概念放到程式設計中,又是怎樣的呢?其實是一樣的。同樣的道理,只要機器開著,裡面的硬體和軟體就會發生狀態的改變。可是對你要編寫的代碼來講,並不是所有的這些改變都是事件。你所需要的事件,只是你對這些變化中感興趣的極小一部分。你只需要找到你感興趣的這樣一種狀態的改變,並且能夠捕獲它,就可以利用事件處理模型來完成你想做的事情了。

事件,其實是一個訊息,WINDOWS 系統是訊息驅動的,在C#中稱為事件,C#中處理事件是通過委託完成,必須先理解委託才能更好的理解事件。事件是一個特殊的委託類。

一個事件例如Click事件,要執行的話,本質就是執行一個方法(也就是一個函數),C#是通過定義委託來間接調用方法的,所以,定義事件的時候一定要先定義好委託,我們之所以能直接書寫控制項(例如按鈕)的Click方法,是因為vs已經將這些常用控制項的事件和委託定義好了,所以我們直接寫Click事件的方法就行了。
如果我們自己定義事件,就必須同時定義好這個事件使用的委託,然後書寫委託調用的方法。

 

註:本文屬於轉載,原文出處http://panjunlai.blog.163.com/blog/static/581903012010420788671/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.