我发现了几篇关于使用扩展方法引发事件的帖子,但是我的问题有点不同:
我有一个这样的界面:
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();
}
我真正想要的是会有需要触发的事件,例如: a statechange-event
.
但是我不希望StatechangeEvent
成为界面的一部分IStateMachine
,但似乎这是唯一的方法。我有几个实现 的类,IStateMachine
因此我每次都必须重做相同的代码。