Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why do event handlers always have a return type of void?

Hey, I wondered why is it that the return type of events such as

private void button1_Click(object sender, EventArgs e) 

is always void?

Can it return any other value too?

like image 390
smriti Avatar asked Jul 24 '10 14:07

smriti


People also ask

What is generally the return type of event handlers?

By default most event handlers return void, however, it is possible for handlers to return values.

Do events have return type?

Do events have return type? By default most event handlers return void (No return type), however, it is possible for handlers to return values.

Can event handler return a value?

Firing an event is a one-way signal. By default most event handlers return void , because single event may have several subscribers, and return value could become ambiguous. However, it is possible for handlers to return values.

What is the purpose and function of event handlers?

In programming, an event handler is a callback routine that operates asynchronously once an event takes place. It dictates the action that follows the event. The programmer writes a code for this action to take place. An event is an action that takes place when a user interacts with a program.


1 Answers

An event handler signature, that is the return type and the number and types of arguments it takes, are determined by the signature of the delegate used to define the event. So the Click event of the Button in your example does not support any return values.

Typically you would not expect to return a value from an event handler as a function return value because an event can have multiple subscribers and each would be returning a return value independently of the other handlers and would require special event firing code to decide what to do with all the return values.

Typically, if you need to communicate back from an event handler the EventArgs structure would contain members that the handler can update and each handler will get an opportunity to look at the values and update accordingly, and the code firing the event only needs to react to the final value in the structure.

like image 74
Chris Taylor Avatar answered Sep 24 '22 05:09

Chris Taylor