Home >Backend Development >C++ >How Can I Pass Additional Parameters to Event Handlers in C#?

How Can I Pass Additional Parameters to Event Handlers in C#?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-23 08:27:11838browse

How Can I Pass Additional Parameters to Event Handlers in C#?

Pass additional parameters to the event handler

In event-driven programming, event handlers are typically assigned using methods that accept only the sender object as a parameter. However, sometimes you may need to pass additional data to the event handler.

Example:

Consider the following code:

<code class="language-csharp">private void setup(string someData)
{
     Object.assignHandler(evHandler);
}

public void evHandler(Object sender)
{
    // 需要在此处使用 someData!!!
}</code>

In this example, evHandler is an event handler and needs access to the someData string available in the setup method.

Solution:

To pass someData to evHandler, you can define an event handler using a lambda expression like this:

<code class="language-csharp">private void setup(string someData)
{
     Object.assignHandler((sender) => evHandler(sender, someData));
}
public void evHandler(Object sender, string someData)
{
    // 需要在此处使用 someData!!!
}</code>

In this code, the lambda expression (sender) => evHandler(sender, someData) creates a new event handler that takes the sender object as a parameter and passes it along with someData to the evHandler method. This ensures that someData is available in the event handler.

The above is the detailed content of How Can I Pass Additional Parameters to Event Handlers in C#?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn