C#是否具有运行时分配的goto?

Dee*_*eBo 4 .net c# goto

我正在创建一个我想在其中使用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行为的更简单方法。