Comando "do case" en GeneXus
El comando do case de GeneXus tiene una sintaxis que no me termina de convencer...
El problema es que las condiciones de cada case pueden ir sobre variables distintas. Más que un do case, la sintaxis permite usarlo como un if-elseif.
En Java y C#, el comando equivalente es el switch, que discrimina según los valores que toma una variable dada. Por ejemplo:
El problema es que las condiciones de cada case pueden ir sobre variables distintas. Más que un do case, la sintaxis permite usarlo como un if-elseif.
En Java y C#, el comando equivalente es el switch, que discrimina según los valores que toma una variable dada. Por ejemplo:
switch (variable) {En GeneXus, el do case me permite hacer cosas como
case 1:
// hago algo para el valor 1
break;
case 2:
// hago algo para el valor 2
break;
default:
// hago algo para los demás valores
break;
}
do case {Me gustaría más tener un comando if-elseif que me permitiera hacer:
case &variable = 1:
// hago algo para el valor 1 de &variable
case &otra_variable = 2:
// hago algo para el valor 2 de &otra_variable
otherwise:
// hago algo para los demás valores
endcase
if &variable = 1:y un comando do case que fuera sobre los valores de una sola variable, algo así:
// hago algo para el valor 1 de &variable
elseif &otra_variable = 2:
// hago algo para el valor 2 de &otra_variable
else
// hago algo para los demás valores
endif
do case &variableCreo que nos forzaría a que el código quede más prolijo.
case 1:
// hago algo para el valor 1 de &variable
case 2:
// hago algo para el valor 2 de &variable
otherwise:
// hago algo para los demás valores
endcase
Concuerdo totalmente con tu punto de vista, lo que hace GeneXus va a contramano de todos los demas lenguajes.
ResponderBorrarSin embargo creo que un cambio de esta magnitud dejaría obsoleto mucho código ya escrito,al menos que se desarrolle algun "inspector de código" que cambiara los "viejos" case por los nuevos "else if".
Saludos.
Pues yo siempre lo he usado igual que en Java o C#, no sabia que se podia usar variables distintas en cada CASE :-)
ResponderBorrarDiego: Es verdad que habría que convertir el código viejo, pero no creo que sea difícil hacerlo automáticamente.
ResponderBorrarAluziner: Entonces hacé de cuenta que nunca leíste esto y seguí usándolo como estaba :)
Marcos, creo que la sintaxis que vos planteas, deja la cosas mas claras, por lo tanto ayuda a que no se cometan errores.
ResponderBorrarMe gusta.