デリゲートって分かりづらいし、どんな時に使えばいいんだってなるよね。
たとえば、1から1000までを足して値を表示、引いて値を表示する際に
ゴリゴリに書くと以下のようになります。
たとえば、1から1000までを足して値を表示、引いて値を表示する際に
ゴリゴリに書くと以下のようになります。
static void Main(string[] args)
{
int sum = 0;
for (int i = 1; i <= 1000; i++)
{
sum += i;
}
Console.WriteLine(sum);
sum = 0;
for (int i = 1; i <= 1000; i++)
{
sum -= i;
}
Console.WriteLine(sum);
Console.ReadKey();
}
この繰り返し処理で枠は同じで
sum +=i とsum-=i
の部分を差し替えられるとうれしいですよね?
ということで
この繰り返し処理で枠は同じで
sum +=i とsum-=i
の部分を差し替えられるとうれしいですよね?
ということで
delegate void Calculation(ref int sum, int i);
private void Calc(Calculation calculation)
{
int sum = 0;
for (int i = 1; i <= 1000; i++)
{
calculation(ref sum, i);
}
Console.WriteLine(sum);
}
static void Main(string[] args)
{
var program = new Program();
program.Calc((ref int sum, int i) => sum += i);
program.Calc((ref int sum, int i) => sum -= i);
Console.ReadKey();
}