擁有一個(gè)只能從對象本身內(nèi)部訂閱的私人事件是否被認(rèn)為是“良好的做法”?(WPF 窗口)?另一種方法是在我調(diào)用事件的任何地方調(diào)用一個(gè)類似于 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 回答
湖上湖
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
擁有一個(gè)只能從對象本身內(nèi)部訂閱的私人事件是否被認(rèn)為是“良好的做法”?
不。定義一個(gè)私有事件只是為了能夠通知(調(diào)用)一些私有方法并沒有多大意義。那么你不妨直接調(diào)用這些方法,而不是引發(fā)事件。
事件用于向外部世界發(fā)出動作發(fā)生的信號,事件發(fā)送者通常不知道哪個(gè)對象或方法將處理它引發(fā)的事件。
- 1 回答
- 0 關(guān)注
- 297 瀏覽
添加回答
舉報(bào)
0/150
提交
取消
