我正在研究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;
}
}
我收到一个错误消息,“成员名称不能与附件名称相同。”如何解决此问题?
答案 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,因为它并不是真正的自我文档,而是与您的用例相关的东西)