【发布时间】:2013-05-28 12:50:07
【问题描述】:
我知道以下两种方法有效,但我想知道在性能/维护/其他方面是否更好。
捷径:
public event EventHandler MyEvent;
漫长的路:
private EventHandler _myEvent;
public event EventHandler MyEvent
{
add { _myEvent += value; }
remove { _myEvent -= value; }
}
很长的路似乎类似于用属性封装成员,这确实是一个很好的做法。但这适用于事件处理程序吗?
【问题讨论】:
-
为什么自动属性是不好的做法?
-
也许是因为我很懒,但我总是选择短版:)
-
我的第一个猜测是,对于大多数情况来说,短途已经绰绰有余了。当你真正需要它时,需要很长的路要走,即。无论是否注册事件,您都需要做一些额外的事情。
-
@Lews :我不是指汽车属性,而是公共成员。例如:
public int Number;是不好的做法。public int Number { get; set; }不是。 -
有时也需要实际的委托来进行调试、清除调用列表等。
标签: c# events event-handling