C#の練習用にDelegateを利用したFizzBuzz問題をやってみた。
なんかメソッドがことごとくstaticになってるんで、見た目はあまりよくはないですが…。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace DelegateFizzBuzz
{
class Program
{ public static int[] FizzBuzzMap =
{3, 0, 0, 1, 0, 2, 1, 0, 0, 1, 2, 0, 1, 0, 0 };
protected delegate void doFuzzBuzz(int n);
public static void Other(int n)
{
Console.WriteLine(n);
}
public static void Fuzz(int n)
{
Console.WriteLine("Fuzz");
}
public static void Buzz(int n)
{
Console.WriteLine("Buzz");
}
public static void FuzzBuzz(int n)
{
Console.WriteLine("FuzzBuzz");
}
static void Main(string[] args)
{
doFuzzBuzz[] FizzBuzzFunc =
{
new doFuzzBuzz( Other ),
new doFuzzBuzz( Fuzz ),
new doFuzzBuzz( Buzz ),
new doFuzzBuzz( FuzzBuzz )
};
for (int i = 0; i < 100; i++)
{
FizzBuzzFunc[FizzBuzzMap[i % 15]](i);
}
}
}
}
投稿日時 : 2008年2月4日 13:57