我有一个这样的枚举声明:

public enum Filter
{
  a = 0x0001;
  b = 0x0002;
}

这意味着什么?他们正在使用它来过滤数组。

最佳答案

这只是意味着,如果执行Filter-> a,则得到1。Filter-> b为2。

奇怪的十六进制表示法就是这种表示法。

编辑:
由于这是一个“过滤器”,因此十六进制表示法更有意义。

通过写入0x1,您可以指定以下位模式:

0000 0001

而0x2为:
0000 0010

这样可以更清楚地了解如何使用过滤器。

因此,例如,如果要过滤掉设置了低2位的数据,则可以执行以下操作:
Filter->a | Filter->b

对应于:
0000 0011

十六进制表示法使过滤器的概念更清晰(对于某些人而言)。例如,通过查看0x83F0的二进制代码相对容易,但对于33776(基数10中的相同数字)而言,难度要大得多。

10-06 05:53
查看更多