gpt4 book ai didi

.net - flagsattribute - 负值?

转载 作者:行者123 更新时间:2023-12-04 00:55:03 27 4
gpt4 key购买 nike

我有一个带有标志属性的枚举,我用它来表示权限。我用它来比较 if (CurrentPermissions & Permission1 == Permission1) 等...

[FlagsAttribute]
enum MyPermission
{
None = 0,
Permission1 = 1,
Permission2 = 2,
Permission3 = 4,
Permission4 = 8,...
..................
and so on

}

但是,我们达到了最大限制。我可以在用完枚举值后使用负值,如 -1、-2、-4 等吗?

最佳答案

您可以在 Flags 枚举中使用您喜欢的任何值定义条目。两个常见的是零和 0xffffffff (-1),因为它们可以是有用的值来表示“禁用所有选项”和“启用所有选项”值,例如

enum DrawingOptions
{
None = 0,

DrawLines = 1 << 0,
FillShapes = 1 << 1,
Antialias = 1 << 2,

BestQuality = 0xffffffff
}

(如果您添加新选项,任何启用“BestQuality”的代码都会自动启用该选项,因此您无需搜索代码来更新所有内容)

但是,正如 Frank Bollack 已经回答的那样,-1 以外的负数不太可能非常有用。

当枚举的大小(byte、int32、int64)发生变化时,您可能还必须小心处理负数。

关于.net - flagsattribute - 负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425224/

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