C# 不指定参数的函数字典

C# 不指定参数的函数字典,c#,dictionary,C#,Dictionary,我有一本字典,它使用字符串作为键,Action函数作为值 有没有一种方法可以在不指定每个键的函数参数的情况下定义字典?例如,假设我有一个函数foo(inta,stringb)。是否可以分配dict['test']=foo 如果已经有人问过这个问题,我很抱歉——我不确定要搜索什么 是,使用委托代替键入的函数。您将使用DynamicInvoke()调用它们,并且可以通过数组传递参数。简言之: Dictionary<string, Delegate>() _delegates; void

我有一本字典,它使用字符串作为键,
Action
函数作为值

有没有一种方法可以在不指定每个键的函数参数的情况下定义字典?例如,假设我有一个函数
foo(inta,stringb)
。是否可以分配
dict['test']=foo


如果已经有人问过这个问题,我很抱歉——我不确定要搜索什么

是,使用
委托
代替键入的函数。您将使用
DynamicInvoke()
调用它们,并且可以通过数组传递参数。简言之:

Dictionary<string, Delegate>() _delegates;

void Test1(int a) { }
void Test2(int a, int b) { }

void SetUp() {
    _delegates = new Dictionary<string, Delegate>();
    _delegates.Add("test1", Test1);
    _delegates.Add("test2", Test2);
}

void CallIt(string name, params object[] args) {
    _delegates[name].DynamicInvoke(args);
}

你可以有dict[“test”]=(a,b)=>foo(a,b);但我不确定这就是你想要的。不清楚您是想在字典中并排存储具有不同参数的函数,还是
dict
总是同质的
Dictionary
应该可以使用后者(在您的环境中使用泛型参数是有意义的);这就是我要找的。
CallIt("test1", 1);
CallIt("test2", 1, 2);