良好实践 - C# 中的私有事件与私有方法
Good practise - private event vs private method in C#
是否认为 "good practise" 有一个只能从对象本身订阅的私有事件? (一个 WPF-Window)?
替代方法是在我调用事件的任何地方调用类似于 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
}
Is it considered "good practise" to have a private event that will only be subscribed to from within the Object itself?
没有。仅仅为了能够通知(调用)一些私有方法而定义私有事件意义不大。那么你不妨直接调用这些方法而不是引发事件。
事件用于向外界发出动作发生的信号,事件发送者通常不知道哪个对象或方法将处理它引发的事件。
是否认为 "good practise" 有一个只能从对象本身订阅的私有事件? (一个 WPF-Window)?
替代方法是在我调用事件的任何地方调用类似于 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
}
Is it considered "good practise" to have a private event that will only be subscribed to from within the Object itself?
没有。仅仅为了能够通知(调用)一些私有方法而定义私有事件意义不大。那么你不妨直接调用这些方法而不是引发事件。
事件用于向外界发出动作发生的信号,事件发送者通常不知道哪个对象或方法将处理它引发的事件。