0

我不记得这个名字了,但我记得见过一次。我需要总结一个序列:

2:hand 
5:leg 
13:head

像 7 这样的数字。

然后当我得到 7 时,我知道是手+腿。如果我得到 20,我知道是手+腿+头。

这种技术叫什么名字?

4

3 回答 3

3

你的意思是一个标志枚举?

[Flags]
enum Parts
{
    Hand = 1,
    Leg = 2,
    Head = 4,
}

例子:

Parts p = Parts.Hand | Parts.Leg;

bool isHand = (p & Parts.Hand) != 0;
于 2012-11-04T21:21:19.673 回答
2

您说的是位掩码,通常使用用[FlagsAttribute]装饰的枚举来实现。这些值将是 2 的幂。

有关在 C# 中使用 [FlagsAttribute] 的说明,请参阅以下 SO 答案。

https://stackoverflow.com/a/3261485/444610

于 2012-11-04T21:20:16.810 回答
1

这就是子集和问题

于 2012-11-04T21:21:56.127 回答