gpt4 book ai didi

c# - 在 C# 中,如何在接口(interface)中声明 EventHandler 的子类?

转载 作者:IT王子 更新时间:2023-10-29 04:29:56 25 4
gpt4 key购买 nike

在接口(interface)中声明 EventHandler 的子类(您已定义)的代码语法是什么?

例如,我在委托(delegate)声明中创建了 EventHandler 子类 MyEventHandler,但您不能在接口(interface)中声明委托(delegate)...

当我要求 Visual Studio 提取一个接口(interface)时,它会将 IMyClassName 中的 EventHandler 称为 MyClassName.MyEventHandler,这显然会破坏类型耦合。

我假设有一种简单的方法可以做到这一点。我是否必须在单独的文件中明确声明我的事件处理程序?

最佳答案

好吧,您需要定义参数并可能委托(delegate)某处。您不需要第二个文件,但我可能会推荐它...但是类可能不应该嵌套,如果那是最初的问题。

推荐使用标准的“sender, args”模式;有两种常用方法:

1:单独声明一个event-args类,使用EventHandler<T>在界面上:

public class MySpecialEventArgs : EventArgs {...}
...
EventHandler<MySpecialEventArgs> MyEvent;

2:分别声明一个事件参数类和委托(delegate)类型:

public class MySpecialEventArgs : EventArgs {...}
public delegate void MySpecialEventHandler(object sender,
MySpecialEventArgs args);
....
event MySpecialEventHandler MyEvent;

关于c# - 在 C# 中,如何在接口(interface)中声明 EventHandler 的子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/585837/

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