在下面的行中:
//Folder.Attributes = FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= FileAttributes.Directory | FileAttributes.Hidden | FileAttributes.System | FileAttributes.ReadOnly; Folder.Attributes |= ~FileAttributes.System; Folder.Attributes &= ~FileAttributes.System;
在C#中,|=(单个管道相等)和&=(单个与号相等)是什么意思, 我想删除系统属性并保留其他属性…
|=
&=
他们是 复合赋值 运算符,(非常宽松地)翻译
x |= y;
进入
x = x | y;
和相同&。在某些情况下,关于隐式强制转换还有更多详细信息,并且目标变量仅被评估一次,但这基本上就是要点。
&
就非复合运算符而言,&它是按位“ AND”和|按位“ OR”。
|
编辑:在这种情况下,您想要Folder.Attributes &= ~FileAttributes.System。要了解原因:
Folder.Attributes &= ~FileAttributes.System
~FileAttributes.System
System
~
因此,它基本上起着掩码的作用- 仅 保留出现在其中的属性(“除系统外的所有内容”)。一般来说: