行动代表 - 声明更正

时间:2009-10-23 13:39:41

标签: c# delegates

根据动作委托的定义,它不会返回值,而是传递值。

我将值传递给Console.WriteLine()

Action<int> an = new Action<int>(Console.WriteLine(3000));

但是我仍然会收到错误的方法名称。问题是什么?

3 个答案:

答案 0 :(得分:3)

Action<int>的构造函数要求您传递一个指向函数的指针,该函数将整数作为参数并且不返回任何内容。你传递的不是一个功能,而是一个表达。您可以定义匿名函数或使用现有函数:

Action<int> an = new Action<int>(t => Console.WriteLine(t));
an(3000);

答案 1 :(得分:2)

您可以像这样编码:

Action<int> an = new Action<int>(Console.WriteLine);
an(3000);

克里斯

答案 2 :(得分:0)

动作仅指向一个方法而不是任何参数。

然后您可以像这样使用它来调用操作:

Action<int> action = new Action<int>(Console.WriteLine);
action.Invoke(3000);