根据动作委托的定义,它不会返回值,而是传递值。
我将值传递给Console.WriteLine()
Action<int> an = new Action<int>(Console.WriteLine(3000));
但是我仍然会收到错误的方法名称。问题是什么?
答案 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);