En las siguientes líneas:
//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;
¿Qué significa |=
(single pipe igual) y &=
(single ampersand igual) en C #
? Quiero eliminar el atributo del sistema manteniendo los demás ...
c#
operators
bitwise-operators
SilverLight
fuente
fuente
x = x | (y);
es una mejor manera de describirlo porquex |= y + z;
no es lo mismo quex = x | y + z;
Folder.Attributes &= ~FileAttributes.System;
|
es bit a bit o&
es bit a bit ya |= b
es equivalente aa = a | b
excepto quea
se evalúa solo una veza &= b
es equivalente aa = a & b
excepto quea
se evalúa solo una vezPara eliminar el bit del sistema sin cambiar otros bits, utilice
~
es la negación bit a bit. Por lo tanto, establecerá todos los bits en 1 excepto el bit del sistema.and
-Si con la máscara se establecerá el Sistema en 0 y dejará todos los demás bits intactos porque0 & x = 0
y1 & x = x
para cualquierx
fuente
a
solo se evalúe una vez? ¿Por qué se evaluaría más veces que eso?a |= b
significaa = a || b
?Puedes hacer esto así:
fuente
^= bit
establecerá el bit si aún no estaba establecido,&= ~bit
no lo establece.