我正在C#(visual studio)制作音乐制作人节目.
这是我的代码:
int accCount = 0;
enum accidental { flat, sharp, none }
accidental thisAcc = accidental.none;
if (keyComboBox.SelectedItem.ToString().Length < 8)
{
MessageBox.Show("Please select a key!");
}
else switch (keyComboBox.SelectedItem.ToString())
{
case "C major - A minor":
accCount = 0; thisAcc = accidental.none;
break;
case "G major - E minor":
accCount = 1; thisAcc = accidental.sharp;
break;
...etc..
}
Run Code Online (Sandbox Code Playgroud)
等等...
这一切都包含在postButton_click(postButton_Click(object sender, EventArgs e)
但是当我单击按钮时,会显示一个异常
(Program.exe中出现未处理的'System.StackOverflowException'类型的异常)
如果我选择"break",这一行是选择:
object key(int count, accidental ac) (here is the cursor){
return key(0, accidental.none);
}
Run Code Online (Sandbox Code Playgroud)
有谁知道什么是错的?
对不起,如果这个问题不够具体,请告诉我.
是的,请查看此代码(从您的问题中重新格式化以获取可读性):
object key(int count, accidental ac)
{
return key(0, accidental.none);
}
Run Code Online (Sandbox Code Playgroud)
这将只调用相同的方法...它将调用相同的方法...将调用相同的方法等,直到它用完堆栈空间.
目前还不清楚你打算从这个方法返回什么,但是你需要以这种无限的方式停止递归.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |