一尘不染

有人还在C#中使用[goto]吗?为什么?[关闭]

c#

我想知道是否还有人在C#中使用“ goto”关键字语法,以及这样做的可能原因是什么?

我倾向于将任何导致读者跳过代码的语句视为不良做法,但想知道是否存在使用这种语法的可信场景?

转到关键字定义


阅读 349

收藏
2020-05-19

共1个答案

一尘不染

在某些(很少)情况下,goto可以真正提高可读性。实际上,您链接到的文档列出了两个示例:

goto的常见用法是将控制权转移到特定的切换用例标签或switch语句中的默认标签。

goto语句对于摆脱深层嵌套的循环也很有用。

这是后一个示例:

for (...) {
    for (...) {
        ...
        if (something)
            goto end_of_loop;
    }
}

end_of_loop:

当然,还有其他方法可以解决此问题,例如将代码重构为函数,在其周围使用伪块等。作为附带说明,Java语言设计人员决定完全禁止 goto 并引入带 标签的break 语句。

2020-05-19