在此页面上,我看到以下代码:
if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么会这样.
为什么attributes & FileAttributes.Hidden)?实际上,单一检查有什么作用attributes?它检查它是否不为空?我有一种感觉,但我觉得很奇怪.随机而怪异.
m0s*_*0sa 15
这是简单的布尔逻辑.该==操作仅返回true如果双方有相同的值.因此,您必须使用要比较的标志来屏蔽该attributes值.考虑这两个例子(值组成):
真正:
0010001 // attributes
& 0000001 // FileAttributes.Hidden
-------
= 0000001 // FileAttributes.Hidden
Run Code Online (Sandbox Code Playgroud)
假:
0011000 // attributes
& 0000001 // FileAttributes.Hidden
-------
= 0000000 // FileAttributes.None
Run Code Online (Sandbox Code Playgroud)