Here we use just static methods (i.e. "class" methods). The next step will be to create a class that implements an iterator that can be instantiated, allowing in theory any number of whatever iterator we set up to be running side by side.
using System;
namespace HogHeaven
{
public class Iter
{
public static IEnumerable<int> Rat ()
{
yield return 34;
yield return 99;
}
static int num1 = 1;
static int num2 = 1;
// Good old Fibonacci numbers
public static IEnumerable<int> Fibo ()
{
int next_num;
for ( ;; ) {
yield return num1;
next_num = num1 + num2;
num1 = num2;
num2 = next_num;
}
}
}
public class Program
{
public static void Main(string[] args)
{
int count = 0;
foreach ( int x in Iter.Rat() )
Console.WriteLine ( $"Value: {x}" );
foreach ( int x in Iter.Fibo() ) {
count++;
Console.WriteLine ( $"Fibonacci {count}: {x}" );
if ( count >= 30 )
return;
}
}
}
}
Tom's Computer Info / tom@mmto.org