Dans les lignes ci-dessous:
//Folder.Atsortingbutes = FileAtsortingbutes.Directory | FileAtsortingbutes.Hidden | FileAtsortingbutes.System | FileAtsortingbutes.ReadOnly; Folder.Atsortingbutes |= FileAtsortingbutes.Directory | FileAtsortingbutes.Hidden | FileAtsortingbutes.System | FileAtsortingbutes.ReadOnly; Folder.Atsortingbutes |= ~FileAtsortingbutes.System; Folder.Atsortingbutes &= ~FileAtsortingbutes.System;
Que signifie |=
(tuyau unique égal) et &=
(esperluète unique égale) en C #
Je veux supprimer l’atsortingbut système en gardant les autres …
Ils sont des opérateurs d’ affectation de composés , traduisant (de manière très souple)
x |= y;
dans
x = x | y;
et pareil pour &
. Il y a un peu plus de détails dans quelques cas concernant une dissortingbution implicite, et la variable cible n’est évaluée qu’une seule fois, mais c’est essentiellement l’essentiel.
En termes d’opérateurs non composés, &
est un bit “AND” et |
est un “OU” binary .
EDIT: Dans ce cas, vous voulez Folder.Atsortingbutes &= ~FileAtsortingbutes.System
. Pour comprendre pourquoi:
~FileAtsortingbutes.System
signifie “tous les atsortingbuts sauf System
” ( ~
est un bit-NOT-NOT) &
signifie “le résultat est tous les atsortingbuts qui apparaissent des deux côtés de l’opérande” Donc, il agit essentiellement comme un masque – ne conserve que les atsortingbuts qui apparaissent dans (“tout sauf le système”). En général:
|=
appenda seulement des bits à la cible &=
ne supprimera jamais que des bits de la cible |
est bitwise ou &
est binary et a |= b
est équivalent à a = a | b
a = a | b
sauf que est évalué une seule fois
a &= b
est équivalent à a = a & b
sauf qu’une est évaluée une seule fois
Pour supprimer le bit système sans changer les autres bits, utilisez
Folder.Atsortingbutes &= ~FileAtsortingbutes.System;
~
est la négation binary. Vous allez donc mettre tous les bits à 1 sauf le bit Système. and
-ing avec le masque mettra System à 0 et laissera tous les autres bits intacts car 0 & x = 0
et 1 & x = x
pour tout x
Je veux supprimer l’atsortingbut système en gardant les autres ..
Vous pouvez le faire comme ça:
Folder.Atsortingbutes ^= FileAtsortingbutes.System;