操作后的嵌套案例

本文关键字:案例 嵌套 操作 | 更新日期: 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;
}

这里的想法是:

  1. 减少过多缩进,使代码更具可读性
  2. 提取抽象级别,使逻辑更清晰
  3. 将任何给定方法执行的操作数量减少到一个。 也就是说,SomeMethod做一件事,AnotherMethod做一件事,包含这个switch语句的方法做一件事(其中一件事恰好是决定下一步要做什么)。