this页面上,我看到以下代码:

if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)

但是我不明白为什么会这样。

为什么是attributes & FileAttributes.Hidden)?对attributes的单数检查实际上是做什么的?它会检查它是否不为null?我有一种知道的感觉,但似乎很奇怪。随机而怪异。

最佳答案

这是简单的 bool(boolean) 逻辑。 ==运算符仅在双方的值完全相同时才返回true。因此,您必须使用要比较的标志来屏蔽attributes值。考虑以下两个示例(值构成):

真正:

  0010001 // attributes
& 0000001 // FileAttributes.Hidden
  -------
= 0000001 // FileAttributes.Hidden

假:
  0011000 // attributes
& 0000001 // FileAttributes.Hidden
  -------
= 0000000 // FileAttributes.None

08-26 15:16