gpt4 book ai didi

c# - 避免大量自定义 EventArgs?

转载 作者:太空狗 更新时间:2023-10-30 00:36:06 29 4
gpt4 key购买 nike

我正在重构的类库有大量事件(超过 50 个),每个事件都有自己的委托(delegate),尽管许多事件具有相同的参数。我开始将它们全部切换为使用 EventHandler 和自定义 EventArgs,但事实证明这既乏味又耗时。

当您有大量事件时,是否有更简单的方法来处理这种情况?

最佳答案

您当然不需要自己的委托(delegate)类型 - 您可以使用 EventHandler<TEventArgs> 其中 TEventArgs是你的具体 EventArgs子类。

重构一团乱麻总是既费时又烦人。如果您更改为使用方法组转换,它可以使它在未来变得更容易:

// This...
foo.SomeEvent += new MyCustomEventHandler(SomeMethod);

// becomes this..
foo.SomeEvent += SomeMethod;

那么如果 SomeEvent 的类型变化,你可以改变SomeMethod并且订阅将正常工作,无需再次更改。

是否需要多个不同的EventArgs子类型是另一回事-在不了解您的特定情况的情况下不可能说。如果您需要传递各种各样的信息,这可能确实有意义。

关于c# - 避免大量自定义 EventArgs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2815104/

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