0

我有以下物品

苹果= 00000001 (1)

芒果= 00000010 (2)

香蕉= 00000100 (4)

葡萄= 00001000 (8)

现在我正在存储用户可以通过执行 or'd 获得的水果

UserA- 00000001(Apple)或'd 00000010(Mango)= 00000011(即3)

现在我想检查该用户是否包含 Apple 或 Banana ?直到现在我在想这个:(UserA's-Values) & (Apple|Banana) =(Apple|Banana)

即(00000011)&(00000001|00000100)=(00000001|00000100)

但它不工作?我可以知道我错过了什么吗?

4

2 回答 2

4

您正在检查 Apple AND Banana。表达式应该是 (UserA's-Values) & (Apple|Banana) (!= 0)

于 2011-01-17T12:04:22.103 回答
0

位也可以在 Enum 和 Struct 中存储和操作。

对于枚举: http: //msdn.microsoft.com/en-us/library/cc138362.aspx
对于结构:C# 中的位字段

枚举很好,因为它.ToString()会打印一个逗号分隔的元素列表,但您仍然使用标准的 AND/OR 运算符来操作和测试它。

于 2011-01-17T17:03:31.233 回答