Oma*_*eji 22 c# event-handling
在接口中声明EventHandler(您已定义)的子类的代码语法是什么?
我在委托声明中创建了EventHandler子类MyEventHandler,但是你不能在接口中声明委托......
当我要求Visual Studio提取接口时,它将IMyClassName中的EventHandler称为MyClassName.MyEventHandler,这显然会对类型耦合造成严重破坏.
我假设有一种简单的方法可以做到这一点.我是否必须在单独的文件中显式声明我的事件处理程序?
Mar*_*ell 25
好吧,你需要定义args并可能委托某个地方.你不需要第二个文件,但我可能会推荐它......但是这些类可能不应该嵌套,如果这是原始问题.
建议使用标准的"sender,args"模式; 有两种cmmon方法:
1:分别声明一个event-args类,并EventHandler<T>在界面上使用:
public class MySpecialEventArgs : EventArgs {...}
...
EventHandler<MySpecialEventArgs> MyEvent;
Run Code Online (Sandbox Code Playgroud)
2:分别声明一个event-args类和委托类型:
public class MySpecialEventArgs : EventArgs {...}
public delegate void MySpecialEventHandler(object sender,
MySpecialEventArgs args);
....
event MySpecialEventHandler MyEvent;
Run Code Online (Sandbox Code Playgroud)
Mik*_*ott 15
假设C#2.0或更高版本......
public class MyEventArgs: EventArgs
{
// ... your event args properties and methods here...
}
public interface IMyInterface
{
event EventHandler<MyEventArgs> MyEvent;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20211 次 |
| 最近记录: |