是否有一个仅在Object本身内部订阅的私人事件被认为是“好习惯”? (一个WPF窗口)?
另一种选择是,无论我在何处调用事件,都仅调用与EventHandler委托类似的方法。
发生事件时,它看起来像这样:
private delegate void ZoomScaleChangedEventhandler(object sender, EventArgs e);
private event ZoomScaleChangedEventhandler ZoomScaleChanged;
...
this.ZoomScaleChanded += this.ZoomScaleChangedHandler;
...
private void someMethod()
{
// Change zoom scale
this.ZoomScaleChanged?.Invoke(this, EventArgs.Empty);
}
private void ZoomScaleChangedHandler(object sender, EventArgs e)
{
// Do stuff
}
使用这样的方法:
private void someMethod()
{
// Change zoom scale
this.ZoomScaleChanged();
}
private void ZoomScaleChanged()
{
// Do stuff
}
答案 0 :(得分:0)
是否有一个仅在对象本身内部订阅的私人事件被认为是“好习惯”?
不。仅仅为了能够通知(调用)某些私有方法而定义私有事件并没有多大意义。那么您最好直接调用这些方法,而不是引发事件。
事件用于向外界发出信号,事件发送者通常不知道哪个对象或方法将处理它引发的事件。