在学习这项flag
技术时,我遇到了一些问题,因此我使用 C# 和 Enum 来展示这个示例:
[Flags]
enum PermissionTypes : byte
{
None = 0x0,
Read = 0x1,
Write = 0x2,
Modify = 0x4,
Delete = 0x8,
Create = 0x10,
All = Read | Write | Modify | Delete | Create
}
检查 hasFlag 属性:
if((value & mask) == mask) {...}
但是当 'hasFlag' 同时应用于 'None' 和 'Read' 时:
Denote x = Current_Permission_Setting,
x & PermissionTypes.None = always false
x & PermissionTypes.Read = always true IFF
(续)IFF x = {奇字节值}
问题:可以安全使用的完美标志值集是什么?
参考: 这是完整的例子。