如何创建要在C#中重用的函数

时间:2018-11-12 21:07:38

标签: 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;
    }
}

我收到一个错误消息,“成员名称不能与附件名称相同。”如何解决此问题?

2 个答案:

答案 0 :(得分:1)

这是因为无法定义与类名称相同的方法名称(异常:Constructor)。编译器可能认为它是构造函数,但由于成员函数具有返回类型而构造函数却不能,因此它不能。因此,本质上提供一个单独的有意义的名称,例如

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

答案 1 :(得分:-1)

在C#中,不允许使用与放入其中的类型相同的方法命名。因此,由于您的类名为SMA,因此您无法在SMA中命名任何方法。尝试其他名称

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

(显然不是DoStuff,因为它并不是真正的自我文档,而是与您的用例相关的东西)