2011-06-10 53 views
0

我在許多書中讀到,事件是保留在某個時間點執行的功能,不需要「馬上」。我不明白這一點,我認爲這是錯誤的。它必須與事實相關,事件的常見來源是像鼠標或鍵盤這樣的I/O設備。但事件不是這樣。.Net中的事件以及與時間「維度」的關係

事件是「簡單」屬性般的多播委託(類似於優秀的飛碟書的屬性類似的概念)。一個委託是一個「函數指針」,這是一種將「注入」方法作爲參數的方法,最終幫助我們「反轉」兩個對象的耦合,使我們不會引用「被調用」對象(從而實現觀察者模式)。至少這是我使用事件的方式。

是上述錯誤? (對不起,任何壞的書面英語)

+0

你從哪裏讀到這個?在什麼情況下? – Oded 2011-06-10 08:08:53

+0

@代表性的第一件事是再次來自** c#深入**,其中代表是「類似遺囑或遺囑的東西」。你在死之前寫下它,以後再「執行」。 (從書的第28頁輕鬆翻譯)。這讓我困惑...... – 2011-06-10 08:12:01

回答

1

第一條語句是事件的UI的使用和交互,但第二個是更廣義的描述,可以在任何地方使用,可以看作是發佈訂閱模式描述。

+0

沒有考慮答案,因爲委託人也「擁有」這個功能(請參見上面的註釋)。 – 2011-06-10 08:15:10

1

除了Jani的回答,我認爲你不能依賴執行事件處理程序的時間點,因爲你不知道有多少事件處理程序總被附加到特定的事件。如果您的事件處理程序是長行代理中的最後一個,並且前面的代理需要大量時間來完成處理程序,則不會如此快速地接收事件。

事件的要點是,只有在事件發生後您無法確切知道處理程序何時被調用。

+0

我並不是說你放置它的方式是「時間」,而是它在深度使用C#的方式(請參閱評論)。畢竟這一切都取決於下面的機器。 – 2011-06-10 08:37:23

相關問題