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