当前位置:  开发笔记 > 编程语言 > 正文

在C#中,如何在接口中声明EventHandler的子类?

如何解决《在C#中,如何在接口中声明EventHandler的子类?》经验,为你挑选了2个好方法。

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

我在委托声明中创建了EventHandler子类MyEventHandler,但是你不能在接口中声明委托......

当我要求Visual Studio提取接口时,它将IMyClassName中的EventHandler称为MyClassName.MyEventHandler,这显然会对类型耦合造成严重破坏.

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



1> Marc Gravell..:

好吧,你需要定义args并可能委托某个地方.你不需要第二个文件,但我可能会推荐它......但是这些类可能不应该嵌套,如果这是原始问题.

建议使用标准的"sender,args"模式; 有两种cmmon方法:

1:分别声明一个event-args类,并EventHandler在界面上使用:

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

2:分别声明一个event-args类和委托类型:

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



2> Mike Scott..:

假设C#2.0或更高版本......

public class MyEventArgs: EventArgs
{
    // ... your event args properties and methods here...
}

public interface IMyInterface
{
    event EventHandler MyEvent;
}

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有