gpt4 book ai didi

c# - 具有由事件触发的 Action

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:53 26 4
gpt4 key购买 nike

我有两个列表,一个有事件,一个有 Action (函数)

列表的原因是允许用户通过界面将两者连接在一起。因此,我正在尝试创建一个方法来获取事件并向其添加操作。

我希望能够执行 TheEvent += TheAction,然后稍后可以使用 -= 将其删除。

很抱歉,如果如何做到这一点很明显,我无法找到合适的关键字来搜索,“将 Action 连接到事件”是我想到的最好的,但在搜索中却毫无用处。

我想出的任何办法都不允许我向事件添加 Action ,但也许我做错了。任何有关允许用户选择事件和从事件触发的功能的最佳方式的建议都将不胜感激。

最佳答案

不确定是否理解您的问题...您为什么不从您的事件处理程序中调用您的操作?

internal class Program
{
private static Test test = new Test();
private static Action action = ActionHandler;

private static void ActionHandler()
{
// Detaches the event handler
test.MyEvent -= test_MyEvent;
}

private static void Main(string[] args)
{
// Attaches the event handler
test.MyEvent += test_MyEvent;

test.DoTheTest();

Console.ReadKey();
}

private static void test_MyEvent(object sender, EventArgs e)
{
// Executes the method defined in the Action
action();
}
}


public class Test
{
public event EventHandler MyEvent;

public void DoTheTest()
{
if (this.MyEvent != null)
{
this.MyEvent(this, EventArgs.Empty);
}
}
}

关于c# - 具有由事件触发的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9133633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com