我可能在这里有一个高级的时刻(22 岁),但我不明白为什么 C# 会跳过我在switch
. 代码如下:
switch (shape)
{
case ToolShape.BasicTool:
EditTool = (LastTool.ToolType == ToolShape.BasicTool)
? new BasicTool((BasicTool)LastTool)
: new BasicTool(ToolNumber, BasicToolType.TypeA,
"Tool " + ToolNumber, "", 1.0, 60.0, 0.0, 0.0, 0.0, 10.0);
break;
case ToolShape.AdvancedTool:
EditTool = (LastTool.ToolType == ToolShape.AdvancedTool)
? new AdvancedTool((AdvancedTool)LastTool)
: new AdvancedTool(AdvancedTool, "Tool " + ToolNumber, "", 1.0, 10.0, 2.0,
AdvancedTool.Light, AdvancedTool.Round);
break;
case ToolShape.SpecialTool:
EditTool = (LastTool.ToolType == ToolShape.SpecialTool)
? new SpecialTool((SpecialTool)LastTool)
: new SpecialTool(SpecialTool, "Tool " + ToolNumber, "",
1.0, 1.0, 90.0);
break;
}
// We never seem to reach anything below here ----------------
LoadToolToForm(EditTool);
它从来没有达到那个LoadToolToForm(EditTool)
声明。或者MessageBox.Show("...")
我卡在那里,用于调试目的。按预期删除switch
作品。但是,即使将一个非常小的开关放在一个外壳中也会导致它再次过早退出。
这是已知的行为吗?是否存在breaking
从 switch 语句导致函数退出的情况(没有调用 return 关键字)。