我想使用经过细微修改的Dictionary>。其中Func <>可以接受1个或多个double类型的参数。
我本想做这样的事情
Dictionary<string, Func<params double, double>>
基本上,我希望能够调用如下所示的函数。
double Function1(double value);
double Function2(double value1, double value2);
double Function3(double value1, double value2, double value3);
谢谢
答案 0 :(得分:4)
params-keyword只是在调用函数时的语法糖。基本上,参数是一个值数组:
public double MyFunc(params double[] values) { // code has to handle a array of double values... }
因此您只需将字典定义为
Dictionary<string, Func<double[], double>>
如果您仍然想要这种语法糖,则应定义一些包装函数或扩展函数来调用类似方法
public double Call(string key, params double[] values)
{
return dic[key](values);
}