将参数与Func <>一起使用

时间:2019-05-17 06:18:13

标签: c# asp.net .net .net-core

我想使用经过细微修改的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);

谢谢

1 个答案:

答案 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);
}