2010-12-16 43 views
0

根據我的理解,與函數不同,事件處理程序接收事件對象作爲參數。事件處理程序和函數是一回事嗎?

這兩個詞之間還有其他的區別嗎?

任何人都可以詳細說明這兩個術語嗎?

+0

或者我可以說即使處理程序是使用函數之一,對吧? – Vikas 2010-12-16 10:11:50

回答

1

它確實取決於您使用的特定語言和API。在C中,事件處理程序通常作爲函數來實現。在C++中,它們也可以是可調用的對象。其他語言可能提供不同的選項。

0

它可能取決於語言。事件處理程序是一個函數,它通常具有一個特殊參數(在大多數情況下),其中參數是事件對象。

所以不,事實處理程序和函數之間確實沒有區別。您可以像調用函數一樣輕鬆地調用事件處理函數,除非您必須將某個事件對象傳遞給事件處理函數,而事件處理函數並非總是如此。

基本上,你永遠不會調用一個事件處理函數,因爲你會調用一個函數,當某些事件被觸發時,你可能會調用事件,這可能是唯一的區別。

我希望這篇文章有幫助。

0

那麼,事件處理程序是特定於您使用的框架。 Java的GUI模型甚至基於處理程序,通常是將實現預期接口的匿名內部類(如KeyListener)傳遞給addKeyListener(或類似)方法。

在C中,你通常使用函數指針來達到同樣的效果。一個按鈕結構會保存一個指向回調函數的指針,並且這個函數可以傳遞一個事件結構。

C++允許您使用函數指針的思想,或者您可以定義一個對象,當您嘗試「調用」它時運行某種方法 - 在適當定義的對象上會調用您選擇的某個函數。你甚至可以讓它有參數。 Python也是這樣。

如果回調接受一個指定事件的參數,它通常稱爲事件處理程序。但它們可以互換使用。