首页 > 解决方案 > 如何创建要在 C# 中重用的函数

问题描述

我正在研究 MACD。MACD 函数太长,我正在重复代码。我想创建一个函数 SMA 并将其调用到 MACD 函数。我创建了这个类,但出现错误:

namespace myBackEnd
{
   public class SMA
{
    public decimal SMA (Queue<Models.DateClose> queue, int period) <--- error here
    {
        decimal average, sum=0;
        for (int i = 0; i < period; i++)
        {
            Models.DateClose dateClose;
            dateClose = queue.Dequeue();
            sum += dateClose.Close;
        }
        return average = sum/period;
    }
}

我收到错误“成员名称不能与封闭名称相同”。我该如何解决这个问题?

标签: c#

解决方案


那是因为您不能定义与类名相同的方法名(异常:)Constructor。编译器可能认为它是一个构造函数,但它不可能是因为成员函数具有返回类型而构造函数不能。所以本质上提供一个单独的有意义的名字,比如

public decimal SMAMethod (Queue<Models.DateClose> queue, int period)

推荐阅读