.NET中的枚举可以有多少个条目?
我相当确定枚举的基础类型是一个整数 类型(不一定是 int
)。这个页面 这里 显示:
枚举的批准类型包括 byte、sbyte、short、ushort、int、uint、long 或 ulong。底层类型指定了为每个枚举值分配多少存储空间。
并且:
就像任何常量一样,对枚举中单独值的所有引用都在编译时转换为数字字面量。
所以我建议唯一的限制将是 long/ulong
的范围(超过十亿),以及编译器中枚举的可允许符号空间(如果您实际上创建的是真正巨大的枚举,则很可能会首先遇到该限制)。
如果您为枚举指定较小的类型(例如 short
),则相应地减少范围。
18,446,744,073,709,551,616(无符号64位整数的最大值)。
枚举可以基于以下类型:
这取决于枚举的基础类型(见下文)。最大条目数将是字节、长整型等的最大数量。
enum Stuff : byte
{
...
}
将具有不同的最大条目数
enum Stuff : long
{
...
}
您可以基于任何整数类型定义枚举(因此,对于该整数大小可用的条目数量,您可以有尽可能多的条目)。
由于它们不需要唯一...你可以尽可能多地使用它们,直到编译器崩溃...但听起来你已经滥用了它们...
相关信息:
enum Foo
{
A = 1,
B = 1,
C = 1
}