FizzBuzzとの3か月(18)
おせわになります。
今日もC#で、デリゲートを使ってみました。デリゲートは、いわゆる「メソッドオブジェクト」のようなものだと認識しています。
デリゲートを使うには、以下の3つの手順が必要です。
- デリゲートを宣言する。
- デリゲートのインスタンスを作る。
- デリゲートを実行する。
以下、コードです。
using System; using System.Collections.Generic; namespace ConsoleApplication1 { delegate void PrintSomething(); class Program : Object { private List<PrintSomething> delegates = new List<PrintSomething>(); public void PrintSomethingAll() { foreach (PrintSomething method in this.delegates) { method(); } } static void Main(string[] args) { Program self = new Program(); for (int i = 0; i < 100; i++) { int param = i + 1; if (param % 3 == 0 && param % 5 == 0) { self.delegates.Add(delegate() { Console.WriteLine("FizzBuzz"); }); } else if (param % 3 == 0) { self.delegates.Add(delegate() { Console.WriteLine("Fizz"); }); } else if (param % 5 == 0) { self.delegates.Add(delegate() { Console.WriteLine("Buzz"); }); } else { self.delegates.Add(delegate() { Console.WriteLine(param); }); } } self.PrintSomethingAll(); Console.ReadLine(); } } }
以上