无法从方法组转换为 Func<int>

时间:2021-01-27 21:16:08

标签: c# dictionary

我打算拥有一个包含命令字符串和函数的字典。当用户输入命令字符串时,函数将执行。但是,我似乎无法修复的编译器错误阻止了我这样做。 Argument 2: cannot convert from 'method group' to 'Func<int>'

class Program
    {
        static Dictionary<string, Func<int>> SendCmdList = new Dictionary<string, Func<int>>();

        static void test(int index)
        {
            clients[index].SendPacket(new Packet { Cmd = 0x8 });
        }

        static void Main(string[] args)
        {
            SendCmdList.Add("!send", test);

我似乎不明白是什么导致了它。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

FooVarWrapperFunc<T> 意味着该方法应该有一个 Func<int> 作为返回类型,而您定义的方法是 void 所以您要么使用 intAction<T>喜欢:

Action<int>

表示接受 static Dictionary<string, Action<int>> SendCmdList = new Dictionary<string, Action<int>>(); 输入或将方法返回类型更改为 int 的方法

相关问题