Yield return in C#
kenneth-truyers.net
kenneth-truyers.net
I've always like the good old fibonacci sequence for this too, because it shows off some simple logic that we all know, but it touches on some non-intuitive aspects (like yields being anywhere, and infinitely long IEnumerables).
public IEnumerable<int> Fib() {
yield return 1;
yield return 1;
int a = 1, b = 1;
while (true) {
b = a + b;
a = b - a;
yield return b;
}
}
Then the 500th fibonachi number is: Fib().Skip(499).Next()(Either way, I did not know C# had this feature, it looks very nice! Also, the article is very well written, thanks a lot!)
Here's some more info (although outdated): https://en.wikipedia.org/wiki/Coroutine#Implementations_for_...
Thanks, glad you enjoyed it!
It use a simple state machine. The async keyword is implemented with the same principle.