例如,在C#中,您可以在枚举类型中使用数字范围吗?
public enum BookType
{
Novel = 1,
Journal = 2,
Reference = 3,
TextBook = 4 .. 10
}
Run Code Online (Sandbox Code Playgroud)
编辑:需要的原因是从数字转换为枚举类型,例如:
int iBook = 5
BookType btBook = (BookType)ibook
Debug.Print "Book " + ibook + " is a " btBook
Run Code Online (Sandbox Code Playgroud)
预期的输出是:第5册是一本教科书
Gab*_*art 11
正如其他人所说的那样,不可能.如果它们是标志,则可以组合枚举值:
[Flags]
public enum BookType
{
Novel = 0,
Journal = 1 << 0,
Reference = 1 << 1,
TextBook1 = 1 << 2,
TextBook2 = 1 << 3,
TextBook3 = 1 << 4,
TextBook4 = 1 << 5,
TextBook5 = 1 << 6,
TextBooks1To5 = TextBook1 | TextBook2 | TextBook3 | TextBook4 | TextBook5
}
Run Code Online (Sandbox Code Playgroud)
根据C#标准(p612,C#编程语言),给定枚举的值必须是一个常量整数(或任何类似的类型 - 长,字节,字节,短等),因此一系列值无效.
我的编译器(VS2008)同意该规范.
由于您无法在枚举中重复名称,因此您最接近的名称是这样的:
public enum BookType
{
Novel = 1,
Journal = 2,
Reference = 3,
TextBook4 = 4,
TextBook5 = 5, ...
TextBook10 = 10
}
Run Code Online (Sandbox Code Playgroud)
这其实非常难看.也许枚举不能解决您的特定问题......
| 归档时间: |
|
| 查看次数: |
13869 次 |
| 最近记录: |