gpt4 book ai didi

c# - 获取枚举标志所有位的最佳方法?

转载 作者:IT王子 更新时间:2023-10-29 04:42:01 27 4
gpt4 key购买 nike

我有一个带有 Flags 属性的枚举。

我的问题是,我想获得所有选项的整数位掩码,而无需自己手动组合所有位。我想这样做是为了与其他一些 int 字段进行比较,并且我想保护以防将来的开发人员向枚举添加更多位选项。

另一件事是我的枚举标志中的位将全部手动分配,因此我不能简单地获取下一个值并减去 1。

最佳答案

如果我正确理解了您的要求,那么这应该对您有用:

Enum.GetValues(typeof(Enum)).Cast<int>().Sum();

然后您可以将其转换回您的typeof(Enum):

[Flags]
public enum Values
{
Value_1 = 1,
Value_2 = 2,
Value_3 = 4,
Value_4 = 8,
Value_5 = 16,
Value_6 = 32,
Value_7 = 64,
Value_8 = 128,
Value_9 = 256
}

static void Main(string[] args)
{
Values values = (Values)Enum.GetValues(typeof(Values)).Cast<int>().Sum();
}

enter image description here

关于c# - 获取枚举标志所有位的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463045/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com