Delphi中C#的收益率等价

时间:2015-07-30 06:51:39

标签: c# delphi delphi-2010

我正在将C#代码转换为Delphi 2010.我坚持在delphi中找到相当于C#的yield return。 有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

根本没有相应的东西。 Delphi没有任何匹配功能。在C#中yield return用于C#迭代器方法,而Delphi没有像C#迭代器方法那样远程。

在Delphi中,您需要手动编写迭代器,而不需要迭代器方法的语法糖。这在documentation

中有所描述

答案 1 :(得分:2)

在delphi中至少有两个Yield实现(但两者都不理想)。

首先使用asm magic,在这里:http://santonov.blogspot.ru/2007/10/yield-you.html

其次是使用Win32光纤(非常轻量级的线程),因此仅适用于Windows。它在这里:http://www.gerixsoft.com/blog/delphi/yield

还有一个基于光纤的可执行性稍差一点的实现:http://delphisorcery.blogspot.ru/2011/04/yield-return-and-delphi.html

那就是说,如果你是Delphi的新手,我不推荐使用yield,因为它不是Delphi中常见的编程方式。因此,只有了解后果才能使用它。

答案 2 :(得分:1)

Delphi https://github.com/Purik/AIO

有基于协程的框架

你可以在这里看到生成器的例子(比如Python) - https://github.com/Purik/AIO/blob/master/Demos/Tutorial/Generator.dpr