我正在开发一种软件,它采用实时数据并根据用户输入从中提取许多功能.每个可用的功能都包含一个方法,该方法获取一个双精度数组并返回所需的特征,例如MeanAbsoluteValue的这个:
public static class MeanAbsoluteValue{
public static double Calculate(double[] data){
return data.Sum(s => Math.Abs(s)) / data.Length;
}
}
Run Code Online (Sandbox Code Playgroud)
由于每个功能只有一个Calculate方法,我正在考虑重写它们,以便可以从该Collection中收集和选择它们.
我曾尝试编写一个接口供他们使用,但由于它们是静态的,所以不允许这样做.
有办法做到这一点吗?如果是这样,你能指出我正确的方向吗?
您可以创建一个由Calculate这些类的方法构造的委托数组,如下所示:
Func<double[],double>[] array = new Func<double[],double>[] {
MeanAbsoluteValue.Calculate
, MeanValue.Calculate
, Deviation.Calculate
// ...and so on
};
Run Code Online (Sandbox Code Playgroud)