Byt till något lämpligare än en enum.
Det finns inte så mycket 'smidiga' finesser med en enum, den håller värden helt enkelt.
Tjing!
Jag har en enumeration som är ganska stor, 127 värden för att vara mer exakt. I denna finns det luckor, d.v.s. jag kan inte bara kolla om det värde jag får in är större eller mindre än max.
Min enum ser typ ut såhär:
enum Cause{ REJECTED = 2,
NOT_SUPPORTED = 4,
NOT_IMPLEMENTED = 10,
UNKNOWN_ERROR = 31
}
men många fler.
Grejen är den att om jag får in värdet 3 så är detta ett godkänt värde, det går enligt ansi-standarden att skriva Cause ch = Cause(3), eftersom det ligger inom intervallet för enumen.
Vad som skall hända om jag får in värdet 3 är att den skall använda ett annat värde. I min kod så har jag ca 10 värden i intervallet 1-31 där alla icke specificerade värden skall får värdet 31, 10 värden i intervallet 32-72 där alla icke specificerade värden ska får värdet 72 o.s.v.
Hur tusan gör man detta på ett smidigt sätt?
Det går att göra med en gigantisk switch-case men då måste denna skrivas om så fort man lägger till ett värde i enumen... och det är inte bra.
Någon som har någon bra ide?
/Lime
