为什么在执行foreach(Enum)

时间:2019-05-12 13:47:53

标签: c# enums

我对枚举有疑问。我正在为类别(大约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);
}
}

0 个答案:

没有答案