声明静态类,以便它们可以存储在List中

San*_*der 5 c#

我正在开发一种软​​件,它采用实时数据并根据用户输入从中提取许多功能.每个可用的功能都包含一个方法,该方法获取一个双精度数组并返回所需的特征,例如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中收集和选择它们.

我曾尝试编写一个接口供他们使用,但由于它们是静态的,所以不允许这样做.

有办法做到这一点吗?如果是这样,你能指出我正确的方向吗?

das*_*ght 8

您可以创建一个由Calculate这些类的方法构造的委托数组,如下所示:

Func<double[],double>[] array = new Func<double[],double>[] {
    MeanAbsoluteValue.Calculate
,   MeanValue.Calculate
,   Deviation.Calculate
//  ...and so on
};
Run Code Online (Sandbox Code Playgroud)

这是关于ideone的演示.