c# - 枚举可能有范围吗?

标签 c# enums

例如,在 C# 中,您能否在枚举类型中使用数字范围

public enum BookType
{
    Novel = 1,
    Journal = 2,
    Reference = 3,
    TextBook = 4 .. 10
}

编辑:需要这样做的原因是从数字转换为枚举类型,例如:

int iBook = 5
BookType btBook = (BookType)ibook
Debug.Print "Book " + ibook + " is a " btBook

预期的输出是:Book 5 is a TextBook

最佳答案

正如其他人所说,不,这是不可能的。如果它们是标志,则可以组合枚举值:

[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
}

关于c# - 枚举可能有范围吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2778487/

相关文章:

java - Java 枚举实例的生命周期

java - 在Java中实现枚举来管理常量的正确方法是什么?

包含具有枚举类型的属性的 C# 接口(interface)

c# - REST 网络服务 "Bad request"

C# 带参数的存储过程

c# - WPF 将 bool 值传递给 View 并更改它

c# - 如何使用.NET 创建选项卡式窗口?

c# - 使用 .NET WebClient 模拟 XmlHttpRequest

c# - 在 C# 中扩展枚举

java - 从枚举返回计算值