本文整理汇总了C#中StateMachine.Fire方法的典型用法代码示例。如果您正苦于以下问题:C# StateMachine.Fire方法的具体用法?C# StateMachine.Fire怎么用?C# StateMachine.Fire使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StateMachine
的用法示例。
在下文中一共展示了StateMachine.Fire方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: StayInSameStateTwoStates_Transition
public void StayInSameStateTwoStates_Transition()
{
var sm = new StateMachine<State, Trigger>(State.A);
sm.Configure(State.A)
.InternalTransition(Trigger.X, (t) => { })
.Permit(Trigger.Y, State.B);
sm.Configure(State.B)
.InternalTransition(Trigger.X, (t) => { })
.Permit(Trigger.Y, State.A);
// This should not cause any state changes
Assert.AreEqual(State.A, sm.State);
sm.Fire(Trigger.X);
Assert.AreEqual(State.A, sm.State);
// Change state to B
sm.Fire(Trigger.Y);
// This should also not cause any state changes
Assert.AreEqual(State.B, sm.State);
sm.Fire(Trigger.X);
Assert.AreEqual(State.B, sm.State);
}
示例2: StayInSameStateOneState_Transition
public void StayInSameStateOneState_Transition()
{
var sm = new StateMachine<State, Trigger>(State.A);
sm.Configure(State.A)
.InternalTransition(Trigger.X, (t) => { });
Assert.AreEqual(State.A, sm.State);
sm.Fire(Trigger.X);
Assert.AreEqual(State.A, sm.State);
}
示例3: DestinationStateIsDynamic
public void DestinationStateIsDynamic()
{
var sm = new StateMachine<State, Trigger>(State.A);
sm.Configure(State.A)
.PermitDynamic(Trigger.X, () => State.B);
sm.Fire(Trigger.X);
Assert.AreEqual(State.B, sm.State);
}
示例4: DestinationStateIsCalculatedBasedOnTriggerParameters
public void DestinationStateIsCalculatedBasedOnTriggerParameters()
{
var sm = new StateMachine<State, Trigger>(State.A);
var trigger = sm.SetTriggerParameters<int>(Trigger.X);
sm.Configure(State.A)
.PermitDynamic(trigger, i => i == 1 ? State.B : State.C);
sm.Fire(trigger, 1);
Assert.AreEqual(State.B, sm.State);
}
示例5: StayInSameSubStateTransitionInSubstate_Action
public void StayInSameSubStateTransitionInSubstate_Action()
{
var sm = new StateMachine<State, Trigger>(State.B);
sm.Configure(State.A);
sm.Configure(State.B)
.SubstateOf(State.A)
.InternalTransition(Trigger.X, () => { })
.InternalTransition(Trigger.Y, () => { });
// This should not cause any state changes
Assert.AreEqual(State.B, sm.State);
sm.Fire(Trigger.X);
Assert.AreEqual(State.B, sm.State);
sm.Fire(Trigger.Y);
Assert.AreEqual(State.B, sm.State);
}