优良作法-C#中的私有事件与私有方法

时间:2018-08-15 07:04:14

标签: c# wpf events methods private

是否有一个仅在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
    }

1 个答案:

答案 0 :(得分:0)

  

是否有一个仅在对象本身内部订阅的私人事件被认为是“好习惯”?

不。仅仅为了能够通知(调用)某些私有方法而定义私有事件并没有多大意义。那么您最好直接调用这些方法,而不是引发事件。

事件用于向外界发出信号,事件发送者通常不知道哪个对象或方法将处理它引发的事件。