C# 需要获取CS1513},但所有大括号都在那里
我是一个新手程序员,所以请原谅我,如果这是显而易见的。我已经检查了所有的大括号,在所有情况下都找到了匹配的大括号。没有这个代码段,代码可以很好地编译。有什么想法吗C# 需要获取CS1513},但所有大括号都在那里,c#,C#,我是一个新手程序员,所以请原谅我,如果这是显而易见的。我已经检查了所有的大括号,在所有情况下都找到了匹配的大括号。没有这个代码段,代码可以很好地编译。有什么想法吗 protected bool Bullish(int ConsecutiveBullishBars) { private int howmanybars = ConsecutiveBullishBars - 1; private bool IsMarketBullish = false;
protected bool Bullish(int ConsecutiveBullishBars)
{
private int howmanybars = ConsecutiveBullishBars - 1;
private bool IsMarketBullish = false;
while (howmanybars >= 0)
{
if (Close[howmanybars] > KeltnerChannel(Offset, Period)[howmanybars])
{
IsMarketBullish = true;
}
else
{
IsMarketBullish = false;
}
howmanybars--;
}
return IsMarketBullish;
}
下面是完整的代码:将局部方法变量标记为
私有
没有任何意义。这就是造成你的错误的原因
为什么编译器会给你一个}
预期错误,我不确定。我猜想编译器假设private int howmanybar
被解释为私有实例字段定义,而不能在方法中声明。因此,它告诉您,它期望看涨
方法在声明之前结束
protected bool Bullish(int ConsecutiveBullishBars)
{
int howmanybars = ConsecutiveBullishBars - 1;
bool IsMarketBullish = false;
while (howmanybars >= 0)
{
if (Close[howmanybars] > KeltnerChannel(Offset, Period)[howmanybars])
{
IsMarketBullish = true;
}
else
{
IsMarketBullish = false;
}
howmanybars--;
}
return IsMarketBullish;
}
@MitchWheat,我怀疑该方法返回数组/字典或类似的东西。…。@aleksey.berezan:早上太早了!:)正如@Jay所说的,错误在其他地方。但即使使用此代码,也可以将其优化为
返回关闭[0]>KeltnerChannel(偏移量,周期)[0]
@JleruOHeP:我认为这不是完全相同的行为。如果Close的长度为零,则您的解决方案将抛出。@删除此方法后,jay代码可以编译得很好……没有关于缺少括号的错误,因此我认为情况并非如此。。。但我也很乐意发布其余的代码。谢谢你看:谢谢!这当然有道理。我删除了private
声明,然后在调用Bullish()
和Bearish()
方法的地方添加了参数,并且编译得很好!仍然不确定为什么它给了我}
预期的错误,但现在一切都好了。事实上,重新阅读您的评论,我认为您完全正确:编译器预期看涨()
在private
声明之前结束。这就是编译器告诉我错误所在的地方。