1
51
这是可行的,但不是一个好主意。迭代器块的创建是为了帮助您为集合编写自定义迭代器,而不是为了解决实现状态机的通用问题。 如果你想写一个状态机,只需写一个状态机。这并不难。如果您想编写大量的状态机,请编写一个有用的助手方法库,让您能够清晰地表示状态机,然后使用您的库。但是,不要滥用一种语言构造,这种构造的目的完全不同,只是碰巧使用状态机作为实现细节。这使得状态机代码难以阅读、理解、调试、维护和扩展。 (顺便说一句,我读到你的名字时仔细考虑了一下。C#的一位设计师也叫马特·沃伦!) |
2
8
是的,这是绝对可能的,而且很容易做到。您可以享受使用控制流构造的乐趣(
|
3
4
迭代器块确实实现了状态机,但棘手的是获取下一个输入。你怎么知道下一步要去哪里?我想你可以有一些共享的“当前转换”变量,但这有点讨厌。 如果您不需要任何输入(例如,您的状态机只是在状态之间循环),那么这很容易,但这不是有趣的类型:) 你能描述一下你感兴趣的状态机类型吗? |
4
4
虽然这不是经典意义上的状态机,但本文 Iterator-based Micro Threading 创造性地将收益用于基于状态的操作。
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
i_sniff_ket · 在unity之外使用unity类 2 年前 |