操作后的嵌套案例
本文关键字:案例 嵌套 操作 | 更新日期: 2023-09-27 18:31:44
我一直很难弄清楚如何有一个在操作后触发的子代码块。如:
case "---":
if (ranNum == 4)
(First Action (Open File Path or Play Music))
{
switch()
{
case: "...":
if (ranNum > 4)
(Second Action 1)
if (ranNum < 1)
(Second Action 2)
break;
case: "///":
if (ranNum > 4)
(Third Action 1)
if (ranNum < 1)
(Third Action 2)
break;
}
}
break;
这里的困难在于,一旦(第一个操作(打开文件路径或播放音乐))被激活,代码就会跳到底部中断;它完全忽略了两种可能的嵌套情况。我对 C# 仍然相当陌生,所以这个问题已经让我发疯了几个星期。有谁知道如何让代码在(第一个操作(打开文件路径或播放音乐))之后转到嵌套大小写选项?是的(第一个操作)确实会打开一种类型的文件路径。
不要将其视为"嵌套案例"。 编译器并不真正关心它是嵌套的。 它将执行那里的任何代码。 switch
结构通常如下所示:
switch (someValue)
{
case "value1":
// some block of code
break;
case "value2":
// another block of code
break;
}
无论// some block of code
发生什么,都与switch
本身无关。 但是,如果这种嵌套开始使代码难以阅读/理解/支持,那么稍微重构就可以清理很多。 也许// some block of code
应该只是对一个单独方法的调用:
switch (someValue)
{
case "value1":
SomeMethod();
break;
case "value2":
AnotherMethod();
break;
}
这里的想法是:
- 减少过多缩进,使代码更具可读性
- 提取抽象级别,使逻辑更清晰
- 将任何给定方法执行的操作数量减少到一个。 也就是说,
SomeMethod
做一件事,AnotherMethod
做一件事,包含这个switch
语句的方法做一件事(其中一件事恰好是决定下一步要做什么)。