我记得在某些时候学习你在一个点退出一个函数,然后再次调用该函数以在你离开的那一点重新加入。你有什么方法可以在c#中做到这一点吗?
感谢
blueblob0
答案 0 :(得分:2)
从语义上讲,我相信你会问yield
,
例如:
IEnumerable<int> Squares()
{
for (var i = 1; i < Int32.MaxValue; i++)
{
yield return i * i;
}
}
// ... usage
Squares().Take(5); // Gets the first five squares, execution state of
// of Squares() is kept in a state machine the
// compiler creates for you behind the scenes.
Sqaures().Take(5); // Gets the next five squares.