Add a new file inside the Hello directory named FibonacciGenerator.cs with the following code:
C# = 复制
using System;
using System.Collections.Generic;
namespace Hello
{
public class FibonacciGenerator
{
private Dictionary<int, int> _cache = new Dictionary<int, int>();
private int Fib(int n) => n < 2 ? n : FibValue(n - 1) + FibValue(n - 2);
private int FibValue(int n)
{
if (!_cache.ContainsKey(n))
{
_cache.Add(n, Fib(n));
}
return _cache[n];
}
public IEnumerable<int> Generate(int n)
{
for (int i = 0; i < n; i++)
{
yield return FibValue(i);
}
}
}
}
2.Change the Main method in your Program.cs file to instantiate the new class and call its method as in the following example:
C# = 复制
using System;
namespace Hello
{
class Program
{
static void Main(string[] args)
{
var generator = new FibonacciGenerator();
foreach (var digit in generator.Generate(15))
{
Console.WriteLine(digit);
}
}
}
}