是否有一个简单的.NET代码生成器用于事件驱动的有限状态机?
我厌倦了为用户界面对象手动执行此操作。我只需要枚举定义,switch语句和每个函数调用。我不需要“图书馆”。
请参阅http://en.wikipedia.org/wiki/Event_driven_finite_state_machine上的事件驱动的有限状态机。
在http://aabs.wordpress.com/2008/06/26/state-machines-in-c-30-using-t4-templates/使用T4模板的C#3.0中的状态机似乎是我想要的,但示例代码的链接已被破坏。
答案 0 :(得分:0)
如果我在你的位置,我会下载Enterprise Architect的试用版:
http://www.sparxsystems.com.au/products/ea/index.html
然后我会建模我的场景,然后使用代码生成器。根据您需要生成的数量,您可能需要查看产品中的一些更高级的选项,例如可能允许您根据列表生成多个时间更改参数的脚本。
P.S。我不适合Sparx系统:-),我确实喜欢他们的工具。
答案 1 :(得分:-1)
就像你说的那样,你只需要:
枚举定义,包含变量,一个命名约定,在方法名称中包含相应的枚举状态,使用反射调用并更新包含枚举的变量。
以上不是生成的代码,但我不明白为什么不使用它。你应该能够快速烘烤一个。 替代使用反射的替代方案将保留在每个状态的列表中,其中Func<>将被调用,使用T4模板生成应该很容易。
PS。我倾向于提供更多帮助,但问题的方式是它要求它^ - ^。也就是说,我对上述内容有点认真,上面的任何一个都没有那么多时间(特别是在OP可能不知道的任何部分有stackoverflow帮助)/并且OP写道,就像他已经完成了那些手很多次。