using System;
namespace Chapter01All
{
delegate int Calcs(int a, int b);
class DeleGateSample
{
static int Kasan(int a, int b)
{
return a + b;
}
static int Genzan(int a, int b)
{
return a - b;
}
static int Kakezan(int a, int b)
{
return a * b;
}
static int Warizan(int a, int b)
{
return a / b;
}
static void Main()
{
Calcs Op = new Calcs(Kasan);
Console.WriteLine(Op(10, 20));
Op = Genzan;
Console.WriteLine(Op(10, 20));
Op = Kakezan;
Console.WriteLine(Op(10, 20));
Op = Warizan;
Console.WriteLine(Op(10, 20));
}
}
}
例としてやって見ましたが、これだとあまりやる意味がないようにも思います。例えば、Opを配列にしてしまうと少しは意味があるようにも思えますが。
using System;
namespace Chapter01All
{
delegate int Calcs(int a, int b);
class DeleGateSample
{
static int Kasan(int a, int b)
{
return a + b;
}
static int Genzan(int a, int b)
{
return a - b;
}
static int Kakezan(int a, int b)
{
return a * b;
}
static int Warizan(int a, int b)
{
return a / b;
}
static void Main()
{
Calcs[] Ope = new Calcs[] {Kasan, Genzan, Kakezan, Warizan };
for(int i=0; i<Ope.Length; i++)
{
Console.WriteLine(Ope[i](10, 20));
}
}
}
}