interruptor de paso directo para ejecutar una secuencia de pasos

8

Mi programa necesita ejecutar una secuencia de pasos de principio a fin. Pero en función de las diferentes entradas, el punto de inicio variará, por ejemplo, algunos se ejecutarán desde el primer paso hasta el final, algunos se ejecutarán desde el segundo paso hasta el final, algunos se ejecutarán desde el 3º hasta el final, etc.

Solo necesito un diseño simple, actualmente uso un interruptor de caída como este:

switch (step) {
case 1:
     //do the 1st step
     //fall through, so no break here
case 2:
    //do the 2nd step
    //fall through
case 3:
    //do the 3rd step
    //fall through
...
}

Funciona pero la caída a través del código siempre me hace sentir incómodo. ¿Hay una manera mejor y más simple de hacerlo?

    
pregunta Qiulang 21.11.2018 - 15:03

2 respuestas

4

Dependiendo del idioma que esté utilizando, puede crear una serie de funciones y usar step como punto de inicio para recorrerlas en bucle. Algo como:

var functions = function[]
{
    step1,
    step2,
    step3,
    …
}

foreach (var index = step-1; index <= function.count; index++)
{
    functions[index]();
}
    
respondido por el David Arno 21.11.2018 - 15:21
4

La forma en que lo haces es perfectamente buena y simple; En primer lugar, es para lo que es el paso. Si te hace sentir más cómodo, puedes agregar un comentario que explique lo que estás haciendo (para que alguien más no tarde media hora en comprender por qué es así).

    
respondido por el Min4Builder 29.11.2018 - 14:18

Lea otras preguntas en las etiquetas