using System;
namespace Chapter01All
{
delegate int Calcs(int a, int b);
class DeleGateSample
{
int Kasan(int a, int b)
{
return a + b;
}
int Genzan(int a, int b)
{
return a - b;
}
int Kakezan(int a, int b)
{
return a * b;
}
int Warizan(int a, int b)
{
return a / b;
}
static void Main()
{
DeleGateSample sobj = new DeleGateSample();
Calcs Op = sobj.Kasan;
Console.WriteLine(Op(10, 20));
Op = sobj.Genzan;
Console.WriteLine(Op(10, 20));
Op = sobj.Kakezan;
Console.WriteLine(Op(10, 20));
Op = sobj.Warizan;
Console.WriteLine(Op(10, 20));
Calcs[] Ope = new Calcs[] {sobj.Kasan, sobj.Genzan, sobj.Kakezan, sobj.Warizan };
for(int i=0; i<Ope.Length; i++)
{
Console.WriteLine(Ope[i](10, 20));
}
}
}
}
デリゲートを個別に書く場合と、配列に書く場合の比較。