デリゲートにさらに2つの関数を追加しようとしていますが、追加した関数を処理していないようです。プログラムの出力に続いて5.私は10を期待します。なぜこれが当てはまるのですか?なぜ出力が5ですか?
using System;
namespace abc
{
public delegate int Del(int k);
class Class1
{
public int Add2(int value)
{
return value = value + 2;
}
public int Add3(int value)
{
return value = value + 3;
}
}
class Program
{
static void Main(string[] args)
{
Class1 c = new Class1();
Del mydel = c.Add2;
mydel += c.Add3;
mydel += c.Add2;
Console.WriteLine(mydel(3));
Console.ReadLine();
}
}
}
'mydel(3)'は実際に引数の値を変更しないので、最後の関数の結果は3 + 2なので、Add2(3)となり、5 – Rafalon