Tengo el siguiente código. Se ve feo, si el valor es igual a uno del siguiente valor, entonces haz algo.alternativa para verificar, si un valor está en un conjunto
var
Value: Word;
begin
Value := 30000;
if (Value = 30000) or (Value = 40000) or (Value = 1) then
do_something;
end;
Quiero refactorizar el código de la siguiente manera:
var
Value: Word;
begin
Value := 30000;
if (Value in [1, 30000, 40000]) then // Does not work
do_something;
end;
Sin embargo, el código refactorizado no funciona. Supongo que un conjunto válido en Delphi solo acepta elementos con tipo byte. ¿Hay alguna buena alternativa para refactorizar mi código original (además de usar el estuche)?
gracias, pero como he señalado en mi pregunta, quiero otra alternativa. Debido a que el uso del interruptor ... caso de una lógica así no parece normal – stanleyxu2005
@ stanleyxu2005. Probablemente sea el más eficiente. Y, además, cuando empiezas a escribir cosas como esta, hay una buena posibilidad de que acabes teniendo que añadir un else o incluso una condición else if 'if value in [.] Do bla else else if value in [..] do blabla else do blablabla'. En tal caso, el caso es la elección obvia. –
Después de un día esperando respuestas, acepto que usar el interruptor ... caso es la solución más aceptable. – stanleyxu2005