我正在尝试了解事件,我有一项任务是创建从EventArgs派生的EventArgs信息类。我不确定这意味着什么,我该怎么做?
答案 0 :(得分:2)
事件参数用于提供有关触发事件的其他信息,例如已更改的值或项目ID。事件处理程序的签名包含sender
和EventArgs
。
由于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
类。