为事件创建类?

时间:2012-08-09 08:15:31

标签: c# events

我正在尝试了解事件,我有一项任务是创建从EventArgs派生的EventArgs信息类。我不确定这意味着什么,我该怎么做?

3 个答案:

答案 0 :(得分:2)

事件参数用于提供有关触发事件的其他信息,例如已更改的值或项目ID。事件处理程序的签名包含senderEventArgs

由于EventArgs非常空,您通常会实现自己的类:

public event EventHandler<FooEventArgs> Foo; // produces handler(object sender, FooEventArgs e)

public sealed class FooEventArgs : EventArgs
{
    public FooEventArgs(int bar)
    {
        this.Bar = bar;
    }

    public int Bar { get; private set; }
}

这只是一个普通的子类,就像你在其他地方创建的一样。如果您不需要传递更多信息,请使用EventArgs.Empty(静态字段)。

答案 1 :(得分:1)

试试这个

public class EventArgsInfo : EventArgs
{
  public string MyCustomProperty { get;set; }
}

答案 2 :(得分:0)

EventArgs表示一个带有参数的类型(因此名称)。

标准的EventArgs类型包含最少量的信息(甚至可能没有)。最佳做法是创建自己的继承(对于您创建的每个自定义事件),并根据您对特定事件的需求扩展参数。

有关更多信息,请查看EventArgs类的MSDN documentation。它包含一个很好的示例,说明如何创建和使用自定义EventArgs类。