如何创建自定义事件处理类,如EventArgs

Nit*_*are 17 c#

如何编写自定义事件处理类,如果有人知道如何创建它,或者你知道任何关于此的好文章,请帮助我.

提前致谢

Moo*_*ice 20

我不完全确定你的意思,但如果你在谈论一个EventArgs派生类:

public class MyEventArgs : EventArgs
{
    private string m_Data;
    public MyEventArgs(string _myData)
    {
        m_Data = _myData;
    } // eo ctor

    public string Data {get{return m_Data} }
} // eo class MyEventArgs


public delegate void MyEventDelegate(MyEventArgs _args);

public class MySource
{
    public void SomeFunction(string _data)
    {
        // raise event
        if(OnMyEvent != null) // might not have handlers!
            OnMyEvent(new MyEventArgs(_data));
    } // eo SomeFunction
    public event MyEventDelegate OnMyEvent;
} // eo class mySource
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


Mig*_*ell 17

我相信你所指的是一个事件的新EventHandler,而不是EventArgs.有两种简单的方法可以做到这一点.首先,您可以创建一个使用通用EventHandler的事件,这是使用新EventArgs类的最快捷,最简单的方法:

event EventHandler<MyEventArgs> sampleEvent;
Run Code Online (Sandbox Code Playgroud)

第二种方式几乎一样简单,从语法的角度来看可能更简洁,就是创建一个新的委托,它具有您想要的事件参数,您可以立即使用它:

delegate void MyEventHandler(object sender, MyEventArgs e);
event MyEventHandler sampleEvent;
Run Code Online (Sandbox Code Playgroud)

第二种方法将允许您稍后重用该处理程序.