C# 中的 Switch 语句失败
switch 语句提供了一种根据指定变量的值执行不同代码的方法。虽然 switch 语句比 if/else if 结构有几个优点,但它的局限性之一是无法从一种情况切换到另一种情况。
在 C# 中,编译器强制执行“无失败”规则,这意味着当到达一个 case 时,执行必须跳转到下一个 case 的开始。此行为可确保代码清晰并防止无意执行多种情况。
考虑以下示例,我们尝试使用 switch 语句将数字转换为其单词表示形式:
switch (number.ToString().Length) { case 3: ans += string.Format("{0} hundred and ", numbers[number / 100]); case 2: int t = (number / 10) % 10; if (t == 1) { ans += teens[number % 10]; break; } else if (t > 1) ans += string.Format("{0}-", tens[t]); case 1: int o = number % 10; ans += numbers[o]; break; default: throw new ArgumentException("number"); }
When执行此代码,编译器将生成错误,指示“控制无法从一个 case 标签 ('case 3:') 落入另一个”和“Control 无法从一个 case 标签 ('case 3:') 落入” 2:') 到另一个。”
要在 C# 中实现失败行为,可以采用以下技术:
需要注意的是,不建议跌落到默认情况,因为它可能会创建不清晰且容易出错的代码。当需要检查多个条件时,通常更好的做法是使用 if/else 或其他条件结构。
以上是C# switch 语句会失败吗?如果会,怎么办?的详细内容。更多信息请关注PHP中文网其他相关文章!