我正在创建一个我想在其中使用goto的C#代码,而不是在编译时常量(即。)中使用。使用字符串作为标签标识符。
top:
string label = "top";
// Doesn't work
goto label;
// Doesn't work either
goto "top";
Run Code Online (Sandbox Code Playgroud)
我知道这goto不是一个好的编程习惯,这也不是一个关于是否应在应用程序中使用它的意见问题–它是针对从已计算goto的BASIC生成C#代码的程序。
Jon*_*eet 11
不,没有这样的东西。如果确实需要,我可能会生成一个switch语句:
switch (label):
{
case "top":
goto top;
case "bottom":
goto bottom;
// ...
}
Run Code Online (Sandbox Code Playgroud)
如果您可以使用来将代码分解为一些动作Dictionary<string, Action>,那么以后再看会更干净……但是如果您需要在范围内使用本地语言等,那么这种“讨厌的”代码可能是模仿BASIC行为的更简单方法。