In C#, can you use number ranges in enum types, for example
public enum BookType
{
Novel = 1,
Journal = 2,
Reference = 3,
TextBook = 4 .. 10
}
EDIT: The reason this is needed is to cast from a number to the enum type, eg:
int iBook = 5
BookType btBook = (BookType)ibook
Debug.Print "Book " + ibook + " is a " btBook
and the expected output is: Book 5 is a TextBook
According to the C# standard (p612, The C# Programming Language) the value given to an enumeration must be a constant integer (or any similar type – long, byte, sbyte, short, etc), so a range of values isn’t valid.
My compiler (VS2008) agrees with the spec.
Since you can’t repeat names within an enumeration, the closest you’ll get is something like this:
Which is actually pretty ugly. Perhaps an enum is not the solution to your particular problem …