我已經發現了幾個帖子關於提高事件與擴展方法添加事件,但我的問題是有點不同:使用擴展方法
我有一個這樣的接口:
public interface IStateMachine
{
void SetState(IState NewState);
IState GetState();
}
使用這個接口我可以像下面創建一個擴展方法:
public static void ChangeState(this IStateMachine StateMachine, IState NewState)
{
StateMachine.GetState().Exit();
StateMachine.SetState(NewState);
StateMachine.GetState().Enter();
}
我真正想要的是將有需要,比如被解僱的事件:一個statechange-event
。
但是,我不希望StatechangeEvent
成爲IStateMachine
界面的一部分,但似乎這是唯一的方法。我有幾個類實現IStateMachine
,因此我必須每次都重做相同的代碼。
謝謝,我會看看。我有不同類型的類可以都是一個IStateMachine。當我做一個基本的抽象類時,我遇到了多重繼承的問題。 – avanwieringen 2013-03-04 13:35:29
@avanwieringen:在這種情況下,通過擴展方法在接口上實現pub/sub似乎是更好的主意。 – 2013-03-04 13:36:21