如何在c#中封装事件类型成员?

时间:2011-04-23 16:13:19

标签: c# .net

我可以为int成员创建getter和setter。如果此成员是事件类型,该怎么做?

更新:我想在每次设置此成员时调用另一个方法。

3 个答案:

答案 0 :(得分:6)

您可以实施custom event accessors

示例:

public delegate int DoSomething();
private event DoSomething _somethingHappened;
public event DoSomething SomethingHappened
{
  add { _somethingHappened += value; }
  remove { _somethingHappened -= value; }
}

答案 1 :(得分:4)

事实上事件已准备就绪,非常简单,声明事件实际上是为底层委托定义了一个getter / setter,因此没有必要定义显式的getter / setter。

如果您想对事件处理程序的附加/分离进行某种自定义处理,那么您可以查看以下MSDN文档

http://msdn.microsoft.com/en-us/library/bb882534.aspx

http://msdn.microsoft.com/en-us/library/z4ka55h8.aspx

答案 2 :(得分:2)

使用委托类型声明事件 - 只需使您的属性成为委托类型。

来自MSDN

  

在.NET Framework类库中,事件基于EventHandler委托和EventArgs基类。

public EventHandler MyEvent {get; set;}