我对枚举有疑问。我正在为类别(大约60个类别)创建枚举,所以我必须使用UINT64来保存它,但是当我这样做时,它会打乱为每个枚举名称创建标签的方法。现在,我的枚举如下所示。问题出在GenerateLabelForeachEnum()方法中,因为它会使每个枚举加倍,所以它创建了2xNone,2x Achievements等。我尝试使用少于32个类别来做到这一点,并且效果很好。我应该如何解决?拆分枚举或做其他事情?
编辑:已解决,在1<<31
及更高版本中,我不得不使用1L<<31
等。
公共枚举分类:Uint64
{
无= 0,
成就= 1 << 0,
动作栏= 1 << 1,
炼金术= 1 << 2,
考古学= 1 << 3,
竞技场= 1 << 4,
图稿= 1 << 5,
拍卖经济= 1 << 6,
Bags_Inventory = 1 << 7,
Battle_Pets = 1 << 8,
战场= 1 << 9,
铁匠= 1 << 10,//最多1 << 60}
和GenerateLabelMethod
public GenerateLabelForeachEnum()
{
foreach (Enum e in Enum.GetValues(typeof(AddonCategories.Categories)))
{
Label lb=new Label(){content=e.ToString()};
CategoryStackPanel.Children.Add(lb);
}
}