Ich habe den folgenden Code. Es sieht hässlich aus, wenn der Wert einem der folgenden Werte entspricht, dann tue etwas.Alternative zu überprüfen, ob ein Wert in einem Satz ist
var
Value: Word;
begin
Value := 30000;
if (Value = 30000) or (Value = 40000) or (Value = 1) then
do_something;
end;
Ich möchte den Code Refactoring wie folgt:
var
Value: Word;
begin
Value := 30000;
if (Value in [1, 30000, 40000]) then // Does not work
do_something;
end;
jedoch die Refactoring-Code funktioniert nicht. Ich gehe davon aus, dass eine gültige Menge in Delphi nur Elemente mit dem Typ Byte akzeptiert. Wenn es eine gute Alternative gibt, meinen ursprünglichen Code umzuformen (neben der Groß-/Kleinschreibung)?
danke, aber wie ich in meiner Frage bemerkt habe, möchte ich eine andere Alternative. Weil die Verwendung von switch ... case für eine solche Logik nicht normal aussieht – stanleyxu2005
@ stanleyxu2005. Es ist wahrscheinlich das effizienteste. Und außerdem, wenn Sie anfangen, etwas wie dieses zu schreiben, gibt es eine gute Chance, dass Sie am Ende ein anderes oder sogar ein anderes hinzufügen müssen, wenn Bedingung 'wenn Wert in [.] Bla sonst wenn Wert in [..] mach Blabla sonst noch blablabla. In einem solchen Fall ist der Fall die offensichtliche Wahl. –
Nachdem ich einen Tag auf Antworten gewartet habe, stimme ich zu, dass die Verwendung von switch ... case die akzeptabelste Lösung ist. – stanleyxu2005