匿名メソッドってなに?
デリゲート型の変数に渡す関数をその場で定義するような感じ。
サンプル
前回までの例で説明すると、犬、猿に攻撃した後に一休みして、きじに攻撃させようというときに、
一休みを匿名メソッドで書いてみる。
static void Main(string[] args)
{
// 3人をお供に加える。
Dog dog = new Dog();
Monkey monkey = new Monkey();
Kiji kiji = new Kiji();
// 攻撃の作戦をたてる
//Attack[] attacks = new Attack[3];
Action[] attacks = new Action[4];
attacks[0] = dog.Attack;
attacks[1] = monkey.Attack;
attacks[2] = delegate() //★匿名メソッド★
{
//ここで関数を直に定義している。
Console.WriteLine("ここで一休み");
};
attacks[3] = kiji.Attack;
// 攻撃する
for (int i = 0; i < attacks.Length; i++ )
{
attacks[i]();
}
Console.ReadLine();
}
どういうときに使うの?
よくわかってない。めんどくさいときにつかうのかな? 関数が短くて大量に必要なときとかかな?
0 件のコメント:
コメントを投稿