gpt4 book ai didi

c# - 使用 "yield"关键字实现状态机

转载 作者:IT王子 更新时间:2023-10-29 04:22:59 25 4
gpt4 key购买 nike

用yield关键字实现一个简单的状态机是否可行as shown here .在我看来,C# 编译器似乎已经为您完成了艰苦的工作,因为它在内部实现了一个状态机来使 yield 语句起作用。

您能否利用编译器已经完成的工作,让它为您实现大部分状态机?

有没有人这样做过,技术上可行吗?

最佳答案

这是可行的,但不是一个好主意。创建迭代器 block 是为了帮助您为集合编写自定义迭代器,而不是为了解决实现状态机的通用问题。

要写状态机就写状态机吧。这并不难。如果你想写很多状态机,写一个有用的辅助方法库,让你干净地表示状态机,然后使用你的库。但是不要滥用用于完全不同的东西的语言结构,而恰好将状态机用作实现细节。这会使您的状态机代码难以阅读、理解、调试、维护和扩展。

(顺便说一句,当我读到你的名字时,我做了双重考虑。C# 的一位设计师也叫 Matt Warren!)

关于c# - 使用 "yield"关键字实现状态机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1194853/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com