gpt4 book ai didi

c# - 枚举 - 所有选项值

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

有没有一种方法可以向枚举添加“所有值”选项,而无需在每次向枚举添加新值时都更改其值?

[Flags] 
public enum SomeEnum
{
SomeValue = 1,
SomeValue2 = 1 << 1,
SomeValue3 = 1 << 2,
SomeValue4 = 1 << 3,
All = ?
}

更新:

最终继承自 long 并使用 long.MaxValue for All 选项。

最佳答案

由于您应该在 Flags 枚举中定义空值,例如 None = 0,定义 All 值的最简单方法是简单地反转所有None` 中的位。

[Flags]
enum MyEnum
{
None = 0,
A = 1,
B = 2,
C = 4,
...
All = ~None
}

请注意,~0 而不是 ~None 不适用于无符号后备类型,因为它是 -1,这不是无符号的有效值。

编辑:答案被修改为使用倒置的 None 而不是显式常量,例如 0x7FFFFFFF 或 ~0,因为这也适用于无符号

关于c# - 枚举 - 所有选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488276/

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