Di baris di bawah ini:
//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;
Apa arti |=
(pipa tunggal sama) dan &=
(ampersand sama) di C #
Saya ingin menghapus atribut sistem dengan menjaga yang lain ...
c#
operators
bitwise-operators
SilverLight
sumber
sumber
x = x | (y);
adalah cara yang lebih baik untuk menggambarkannya karenax |= y + z;
tidak sama denganx = x | y + z;
Folder.Attributes &= ~FileAttributes.System;
|
adalah bitwise atau&
bersifat bitwise dana |= b
sama dengana = a | b
kecuali yanga
dievaluasi hanya sekalia &= b
sama dengana = a & b
kecuali yanga
dievaluasi hanya sekaliUntuk menghapus bit Sistem tanpa mengubah bit lain, gunakan
~
adalah negasi bitwise. Dengan demikian Anda akan menyetel semua bit ke 1 kecuali bit Sistem.and
-ing dengan mask akan mengatur Sistem ke 0 dan membiarkan semua bit lainnya utuh karena0 & x = 0
dan1 & x = x
untuk apapunx
sumber
a
hanya dievaluasi sekali? Mengapa dievaluasi lebih dari itu?a |= b
sebenarnya artinyaa = a || b
?Anda dapat melakukan ini seperti ini:
sumber
^= bit
akan menyetel bit jika belum disetel,&= ~bit
tidak menyetelnya.