我想知道这种 switch-case 用法是否适当,或者是否有其他替代方案(模式)?
以下是我的程序的一部分:
基本上我正在执行一系列操作:
1. 通常情况下,程序控制按顺序一个接一个地跟随每个 case;
2. 通常情况下,任何特定的 case 在第一次调用时都没有完成,我们必须等到 procX 返回 true。(等待设备响应或操作完成);
3. 跳转到特定的 case 是可能的(在采样代码中改变 StepCurrent)。
我发现这种 switch-case 很难维护,特别是通过更改 StepCurrent 直接控制流程。而且代码看起来很丑陋。
是否有更好的方法?
注意:虽然我使用的是 C#,但问题可能不仅限于它。
以下是我的程序的一部分:
基本上我正在执行一系列操作:
1. 通常情况下,程序控制按顺序一个接一个地跟随每个 case;
2. 通常情况下,任何特定的 case 在第一次调用时都没有完成,我们必须等到 procX 返回 true。(等待设备响应或操作完成);
3. 跳转到特定的 case 是可能的(在采样代码中改变 StepCurrent)。
我发现这种 switch-case 很难维护,特别是通过更改 StepCurrent 直接控制流程。而且代码看起来很丑陋。
是否有更好的方法?
注意:虽然我使用的是 C#,但问题可能不仅限于它。
while (true)
{
if (sig_IsExit())
{
break;
}
Thread.Sleep(500);
bRetSts = false;
switch (StepCurrent) // nSeq)
{
case 0:
bRetSts = proc0();
break;
case 1:
bRetSts = proc1();
break;
case 2:
bRetSts = proc2();
break;
case 3:
bRetSts = proc3();
break;
case 4:
...
}
if( bRetSts )
StepCurrent++;
}