.NET中的枚举可以有多少条目?
答案 0 :(得分:12)
我很确定基础类型是整数类型(不一定是int
)。此页面here表明:
枚举的已批准类型是byte,sbyte,short,ushort,int,uint,long或ulong。基础类型指定为每个枚举器分配多少存储空间。
和
与任何常量一样,对枚举的各个值的所有引用都在编译时转换为数字文字。
所以我建议唯一的限制是long/ulong
的范围(以及数十亿)和编译器中允许的符号空间(如果你是的话,你最有可能首先触及这个限制)实际上创建了真正大量的枚举。)
如果为枚举指定较小的类型(例如short
),则范围将相应减少。
答案 1 :(得分:6)
18,446,744,073,709,551,616 (无符号64位整数的最大值)。
枚举可以基于:
答案 2 :(得分:3)
它取决于枚举的基础类型(见下文)。最大条目数将是最大字节数,长数等
enum Stuff : byte
{
...
}
将具有与
不同的最大条目数enum Stuff : long
{
...
}
答案 3 :(得分:3)
请记住,如果需要按位操作,则不同的非组合值的数量取决于所使用的整数类型中的位数。
例如,32位整数具有32个可能值,64位整数具有64个可能值。这里有更多内容:flagsattribute - negative values?
答案 4 :(得分:2)
您可以根据任何整数类型定义枚举(因此可以为该整数大小提供尽可能多的条目)。
答案 5 :(得分:2)
因为它们不需要是唯一的...尽可能多的你可以逃脱,直到你打破编译器...但听起来你已经在滥用它们了......
有关信息:
enum Foo
{
A = 1,
B = 1,
C = 1
}
(在现实世界中这不应该是一个问题!!!)