Подтвердить что ты не робот

Как создать настраиваемый класс обработки событий Как EventArgs

как писать пользовательские классы обработки событий, если у кого-то есть представление о том, как его создать, или если вы знаете какую-либо хорошую статью относительно этого, то, пожалуйста, помогите мне.

Спасибо в Advance

4b9b3361

Ответ 1

Я не совсем уверен, что вы имеете в виду, но если вы говорите о производном классе 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

Надеюсь, что это поможет.

Ответ 2

Я считаю, что вы имеете в виду новый EventHandler для события, а не EventArgs. Есть два простых способа сделать это. Во-первых, вы можете создать событие, которое использует общий EventHandler, который является самым быстрым и простым способом использования нового класса EventArgs:

event EventHandler<MyEventArgs> sampleEvent;

Второй способ почти такой же простой и, возможно, более аккуратный с точки зрения синтаксиса, заключается в создании нового делегата, который имеет аргументы, которые вы хотите для своего события, которое вы можете использовать сразу:

delegate void MyEventHandler(object sender, MyEventArgs e);
event MyEventHandler sampleEvent;

И этот второй метод позволит вам повторно использовать обработчик позже.

Ответ 3

Вы объявляете событие следующим образом:

public delegate void MyEventDelegate(...);
public static event MyEventDelegate MyEvent = delegate { };

Затем, чтобы поднять событие:

MyEvent(...);

Событие инициализируется анонимным делегатом, чтобы удалить требование проверки нуля каждый раз, когда вы хотите поднять событие.