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

发布于 2024-09-19 16:51:15 字数 576 浏览 6 评论 0原文

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

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

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

使用 T4 模板的 C# 3.0 中的状态机位于 http://aabs.wordpress.com/2008/06/26/state-machines-in-c-30-using-t4-templates/ 看起来像这样是我想要的,但示例代码的链接已损坏。

Is there a simple .NET code generator for a Event-driven finite state machine?

I am tired of doing this by hand for user-interface objects. I just need the enum definition, the switch statement, and each function call. I do not need a "library".

See Event-driven finite state machine at http://en.wikipedia.org/wiki/Event_driven_finite_state_machine.

State Machines in C# 3.0 using T4 Templates at http://aabs.wordpress.com/2008/06/26/state-machines-in-c-30-using-t4-templates/ seems like it is what I want but the link to the example code is broken.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

说谎友 2024-09-26 16:51:15

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

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

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

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

If I were in your position, I would download the trial version of Enterprise Architect:

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

I would then model my scenario and then use the code generator. Depending on how many you need to generate you might want to look into some of the more advanced options in the product, such as scripting that might allow you to generate multiple time changing parameters based on a list.

P.S. I don't work for Sparx systems :-), I do love their tools though.

情痴 2024-09-26 16:51:15

就像你说的,你只需要:

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

上面不是生成的代码,但我不明白为什么不使用它。你应该能够快速烘烤一个。 替代使用反射的替代方案是将 Func<> 保存在每个状态的列表中。将被调用,并且使用 T4 模板生成它应该很容易


附注我倾向于提供更多帮助,但问题的措辞方式要求它^-^。也就是说,我对上述内容很认真,做上述任何一项都没有那么多时间(特别是在OP可能不知道的任何部分中使用stackoverflow帮助)/并且OP写道,就像他已经通过手很多次。

Like you said, you just need:

An enum definition, holding a variable of it, a naming convention that includes in the method name the corresponding enum state, a call with reflection and updating the variable holding the enum.

The above isn't with generated code, but I don't see why not using it. You should be able to bake one quickly. An alternative instead of using reflection, would be holding in a list for each state which Func<> will be called, and generating that should be easy with a T4 template.


ps. I tend to be a lot more helpful, but the way the question is phrased it begged for it ^-^. That said, I'm kind of serious with the above, doing either of the above isn't that much time (specially with stackoverflow help in any part the OP might not know) / and the OP wrote that like he has done those by hand tons of times.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文