関数呼び出しエラー。私はこれがコンソールウィンドウアプリケーションですCのイベントと代理人
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace delegatEvents
{
delegate int number(int i);
class Program
{
public static event number variable;
static int no = 5;
public static int addnumber(int p)
{
no += p;
return no;
}
public static int multiply(int m)
{
no *= m;
return no;
}
public static int getnum()
{
return no;
}
static void Main(string[] args)
{
number p;
variable +=new number(addnumber);
variable += new number(multiply);
variable(3);
Console.WriteLine(" addition number is : {0}", getnum());
variable(2);
Console.WriteLine(" multiplication number is : {0}", getnum());
Console.ReadLine();
}
}
}
の下に私のコードは一緒に複数の関数を呼び出すしようとしています、私はプログラムを使用して加算や乗算を取得しようとしていますが、そのは動作していません。
これにはイベントを使用することはほとんど意味がありません。両方のイベントを購読しているので、最初にaddが実行され、次に 'variable(n)'の呼び出しごとに乗算が行われます。 – CodeCaster
ここをクリックしてください - [Events and Delegates Simplified](http://www.codeproject.com/Articles/4773/Events-and-Delegates-Simplified) –
このように、デリゲート '' 'variable'''、最初にno = 3 + no(5 + 3 = 8)を追加し、no = 3 * no = 24を掛けます。次に、 '' variable(2); ''変数(3) '' ''最初にno = 2 + no = 26を追加し、no = 2 * no = 52を掛けます。それはなぜ出力24と52になるのですか? – tym32167