我想知道是否还有人在C#中使用“ goto”关键字语法,以及这样做的可能原因是什么?
我倾向于将任何导致读者跳过代码的语句视为不良做法,但想知道是否存在使用这种语法的可信场景?
转到关键字定义
在某些(很少)情况下,goto可以真正提高可读性。实际上,您链接到的文档列出了两个示例:
goto的常见用法是将控制权转移到特定的切换用例标签或switch语句中的默认标签。 goto语句对于摆脱深层嵌套的循环也很有用。
goto的常见用法是将控制权转移到特定的切换用例标签或switch语句中的默认标签。
goto语句对于摆脱深层嵌套的循环也很有用。
这是后一个示例:
for (...) { for (...) { ... if (something) goto end_of_loop; } } end_of_loop:
当然,还有其他方法可以解决此问题,例如将代码重构为函数,在其周围使用伪块等。作为附带说明,Java语言设计人员决定完全禁止 goto 并引入带 标签的break 语句。