当前位置: 首页>>代码示例>>C#>>正文


C# StateMachine.Configure方法代码示例

本文整理汇总了C#中StateMachine.Configure方法的典型用法代码示例。如果您正苦于以下问题:C# StateMachine.Configure方法的具体用法?C# StateMachine.Configure怎么用?C# StateMachine.Configure使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在StateMachine的用法示例。


在下文中一共展示了StateMachine.Configure方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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);
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:25,代码来源:InternalTransitionFixture.cs

示例2: UserSecurity

 static UserSecurity()
 {
     _fsm = new StateMachine<UserState, UserSecurityCommand>();
     _fsm.Configure(UserState.Initial)
         .Permit(UserSecurityCommand.CreateUserSecurity, UserState.Initial);
     _fsm.Configure(UserState.Inactive)
         .Permit(UserSecurityCommand.CreateUserSecurity, UserState.Inactive)
         .Permit(UserSecurityCommand.VerifyPassword, UserState.Inactive)
         .Permit(UserSecurityCommand.RequestActivateToken, UserState.Inactive)
         .Permit(UserSecurityCommand.ResetActivateToken, UserState.Normal)
         .Permit(UserSecurityCommand.ChangePassword, UserState.Inactive)
         .Permit(UserSecurityCommand.Destory, UserState.Destroyed);
     _fsm.Configure(UserState.Normal)
         .Permit(UserSecurityCommand.VerifyPassword, UserState.Normal)
         .Permit(UserSecurityCommand.RequestResetPasswordToken, UserState.Normal)
         .Permit(UserSecurityCommand.VerifyResetPasswordToken, UserState.Normal)
         .Permit(UserSecurityCommand.CancelResetPasswordToken, UserState.Normal)
         .Permit(UserSecurityCommand.ResetPassword, UserState.Normal)
         .Permit(UserSecurityCommand.ChangePassword, UserState.Normal)
         .Permit(UserSecurityCommand.Block, UserState.Blocked)
         .Permit(UserSecurityCommand.Destory, UserState.Destroyed);
     _fsm.Configure(UserState.Blocked)
         .Permit(UserSecurityCommand.Destory, UserState.Destroyed)
         .Permit(UserSecurityCommand.Restore, UserState.Normal);
 }
开发者ID:coolworker,项目名称:yue,代码行数:25,代码来源:UserSecurity.cs

示例3: User

 static User()
 {
     _fsm = new StateMachine<UserState, UserCommand>();
     _fsm.Configure(UserState.Initial)
         .Permit(UserCommand.CreateUser, UserState.Inactive);
     _fsm.Configure(UserState.Inactive)
         .Permit(UserCommand.ActivateUser, UserState.Normal)
         .Permit(UserCommand.ChangeProfile, UserState.Inactive);
     _fsm.Configure(UserState.Normal)
         .Permit(UserCommand.ChangeProfile, UserState.Normal);
 }
开发者ID:coolworker,项目名称:yue,代码行数:11,代码来源:User.cs

示例4: Given

		public void Given()
		{
			_stateMachine = new StateMachine<State, Trigger>(State.B);
			_stateMachine.Configure(State.B).Permit(Trigger.X, State.C);

			// sanity check:
			Assert.That(_stateMachine.IsInState(State.B));
		}
开发者ID:tkddus121,项目名称:Stateless,代码行数:8,代码来源:StateMachineCloneTestFixture.cs

示例5: 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);
        }
开发者ID:Horb,项目名称:stateless,代码行数:10,代码来源:DynamicTriggerBehaviourFixture.cs

示例6: 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);
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:10,代码来源:InternalTransitionFixture.cs

示例7: 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);
        }
开发者ID:Horb,项目名称:stateless,代码行数:11,代码来源:DynamicTriggerBehaviourFixture.cs

示例8: DestinationStateIsDynamic

        public void DestinationStateIsDynamic()
        {
            var expected = "digraph {" + System.Environment.NewLine
                         + " { node [label=\"?\"] unknownDestination_0 };" + System.Environment.NewLine
                         + " A -> unknownDestination_0 [label=\"X\"];" + System.Environment.NewLine
                         + "}";

            var sm = new StateMachine<State, Trigger>(State.A);
            sm.Configure(State.A)
                .PermitDynamic(Trigger.X, () => State.B);

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:13,代码来源:DotGraphFixture.cs

示例9: Start

        void Start()
        {
            var topMenuState = new TopMenuState(transform.FindChild("TopMenuUI").gameObject, textures, fontProperties);
            var statusState = new StatusState(transform.FindChild("StatusUI").gameObject, textures, fontProperties);

            stateMachine = new StateMachine<State<MainMenuTrigger>, MainMenuTrigger>(topMenuState);

            stateMachine
                .Configure(topMenuState)
                .OnEntry(trans => topMenuState.OnEnter())
                .OnExit(trans => topMenuState.OnExit())
                .Permit(MainMenuTrigger.StatusSelected, statusState)
                .Ignore(MainMenuTrigger.MenuExited);

            stateMachine
                .Configure(statusState)
                .OnEntry(trans => statusState.OnEnter())
                .OnExit(trans => statusState.OnExit())
                .Permit(MainMenuTrigger.ActionCanceled, topMenuState);

            topMenuState.OnEnter();
        }
开发者ID:mildsauce45,项目名称:NowItsOurTurn,代码行数:22,代码来源:MainMenu.cs

示例10: SimpleTransition

        public void SimpleTransition()
        {
            var expected = "digraph {" + System.Environment.NewLine
                         + " A -> B [label=\"X\"];" + System.Environment.NewLine
                         + "}";

            var sm = new StateMachine<State, Trigger>(State.A);

            sm.Configure(State.A)
                .Permit(Trigger.X, State.B);

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:njmube,项目名称:stateless,代码行数:13,代码来源:DotGraphFixture.cs

示例11: OnExitWithAnonymousActionAndDescription

        public void OnExitWithAnonymousActionAndDescription()
        {
            var expected = "digraph {" + System.Environment.NewLine
                         + "node [shape=box];" + System.Environment.NewLine
                         + " A -> \"exitA\" [label=\"On Exit\" style=dotted];" + System.Environment.NewLine
                         + "}";

            var sm = new StateMachine<State, Trigger>(State.A);

            sm.Configure(State.A)
                .OnExit(() => { }, "exitA");

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:14,代码来源:DotGraphFixture.cs

示例12: DestinationStateIsCalculatedBasedOnTriggerParameters

        public void DestinationStateIsCalculatedBasedOnTriggerParameters()
        {
            var expected = "digraph {" + System.Environment.NewLine
                         + " { node [label=\"?\"] unknownDestination_0 };" + System.Environment.NewLine
                         + " A -> unknownDestination_0 [label=\"X\"];" + System.Environment.NewLine
                         + "}";

            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);

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:14,代码来源:DotGraphFixture.cs

示例13: OnEntryWithNamedDelegateActionAndDescription

        public void OnEntryWithNamedDelegateActionAndDescription()
        {
            var expected = "digraph {" + System.Environment.NewLine
                         + "node [shape=box];" + System.Environment.NewLine
                         + " A -> \"enteredA\" [label=\"On Entry\" style=dotted];" + System.Environment.NewLine
                         + "}";

            var sm = new StateMachine<State, Trigger>(State.A);

            sm.Configure(State.A)
                .OnEntry(OnEntry, "enteredA");

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:14,代码来源:DotGraphFixture.cs

示例14: WhenDiscriminatedByAnonymousGuard

        public void WhenDiscriminatedByAnonymousGuard()
        {
            Func<bool> anonymousGuard = () => true;

            var expected = "digraph {" + System.Environment.NewLine
                         + " A -> B [label=\"X ["+ anonymousGuard.Method.Name +"]\"];" + System.Environment.NewLine
                         + "}";

            var sm = new StateMachine<State, Trigger>(State.A);

            sm.Configure(State.A)
                .PermitIf(Trigger.X, State.B, anonymousGuard);

            Assert.AreEqual(expected, sm.ToDotGraph());
        }
开发者ID:njmube,项目名称:stateless,代码行数:15,代码来源:DotGraphFixture.cs

示例15: 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);
        }
开发者ID:HenningNT,项目名称:stateless,代码行数:18,代码来源:InternalTransitionFixture.cs


注:本文中的StateMachine.Configure方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。