Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何创建像EventArgs这样的自定义事件处理类_C# - Fatal编程技术网

C# 如何创建像EventArgs这样的自定义事件处理类

C# 如何创建像EventArgs这样的自定义事件处理类,c#,C#,如何编写自定义事件处理类,如果有人知道如何创建自定义事件处理类,或者您知道关于此的任何好文章,请帮助我 提前感谢我不完全确定您的意思,但如果您谈论的是EventArgs派生类: public class MyEventArgs : EventArgs { private string m_Data; public MyEventArgs(string _myData) { m_Data = _myData; } // eo ctor pu

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


提前感谢

我不完全确定您的意思,但如果您谈论的是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

希望这能有所帮助。

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

event EventHandler<MyEventArgs> sampleEvent;

第二种方法将允许您以后重用处理程序。

您可以这样声明事件:

public delegate void MyEventDelegate(...);
public static event MyEventDelegate MyEvent = delegate { };
然后,提出该事件:

MyEvent(...);

事件被初始化为匿名委托,以消除每次您想要引发事件时检查null的要求。

google上有很多内容……这一个看起来非常好而且基本:“事件处理类”是什么?+1用于显示EventHandler声明事件的方式感谢通用事件处理程序解决方案。我正在寻找EvEnthDunter上的自定义构造函数,甚至没有考虑它是一个泛型类。问题解决了。
MyEvent(...);