开发者

Event handler and functions are the same thing?

开发者 https://www.devze.com 2023-01-30 16:50 出处:网络
As per my understanding, unlike functions, event handler receiv开发者_运维问答es the event object as parameter.

As per my understanding, unlike functions, event handler receiv开发者_运维问答es the event object as parameter.

Is there any other difference between those two words or both are similar?

Can anyone elaborate both the terms?


It really depends on the specific language and API you are using. In C for instance, event-handlers are usually implemented as functions. in C++ they can also be callable objects. Other languages may offer different options.


It may depend on the language. Event handler is a function which often has a special parameter (in most cases) where the parameter is the event object.

So no, there's really no difference between an event handler and a function. You could easily call an event handler just as you would call a function, except you would have to pass some event object to the event handler function, which is not always the case.

Basically you would never call an event handler as you would call a function, you would have something invoke the event when something is triggered, that may be the only difference.

I hope this post is helpful.


Well, event handlers are specific to the framework you use. Java's GUI model is based on even handlers, typically you pass an anonymous inner class that implements the expected interface (like KeyListener) to the addKeyListener (or similar) method.

In C, you typically use function pointers to the same effect. A button struct would hold a function pointer to a callback, and this function could be passed an event struct.

C++ allows you to use the function-pointer idea, or you can define an object that runs some method when you try to 'call' it - some_obj() on a suitably-defined object would call some function of your choice. You could even make it take arguments. Python is like this as well.

If a callback takes a parameter that specifies the event, it's typically called an event handler. But they can be used pretty much interchangeably.

0

精彩评论

暂无评论...
验证码 换一张
取 消