2

是否有用于事件驱动的有限状态机的简单 .NET 代码生成器?

我厌倦了手动为用户界面对象执行此操作。我只需要枚举定义、switch 语句和每个函数调用。我不需要“图书馆”。

请参阅http://en.wikipedia.org/wiki/Event_driven_finite_state_machine的事件驱动有限状态机

C# 3.0 中的状态机在 http://aabs.wordpress.com/2008/06/26/state-machines-in-c-30-using-t4-templates/ 上使用 T4 模板似乎我想要的,但示例代码的链接已损坏。

4

2 回答 2

0

如果我处于你的位置,我会下载 Enterprise Architect 的试用版:

http://www.sparxsystems.com.au/products/ea/index.html

然后我会为我的场景建模,然后使用代码生成器。根据您需要生成的数量,您可能希望查看产品中的一些更高级的选项,例如可能允许您根据列表生成多个时间变化参数的脚本。

PS 我不为 Sparx 系统工作 :-),不过我确实喜欢他们的工具。

于 2010-09-14T11:15:43.843 回答
-1

就像你说的,你只需要:

一个 enum 定义,包含它的一个变量,一个命名约定,在方法名称中包含相应的 enum 状态,一个带有反射的调用和更新包含 enum 的变量

上面没有生成代码,但我不明白为什么不使用它。你应该可以快速烤一个。替代使用反射的替代方法是将调用 Func<> 的每个状态保存在一个列表中,并使用 T4 模板轻松生成该列表


附言。我往往会更有帮助,但问题的措辞方式它恳求它^-^。也就是说,我对上述内容很认真,执行上述任何一项都没有太多时间(特别是在 OP 可能不知道的任何部分都有 stackoverflow 帮助)/并且 OP 写道,就像他所做的那样手吨次。

于 2010-09-13T20:33:38.987 回答