在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