Nas linhas abaixo:
//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;
O que significa |=
(único tubo igual) e &=
(único e comercial igual) em C #?
Desejo remover o atributo do sistema mantendo os outros ...
c#
operators
bitwise-operators
Luz cinza
fonte
fonte
x = x | (y);
é uma maneira melhor de descrevê-lo porquex |= y + z;
não é o mesmo quex = x | y + z;
Folder.Attributes &= ~FileAttributes.System;
|
é bit a bit ou&
é bit a bit ea |= b
é equivalente aa = a | b
exceto quea
é avaliado apenas uma veza &= b
é equivalente aa = a & b
exceto quea
é avaliado apenas uma vezPara remover o bit do sistema sem alterar os outros bits, use
~
é negação bit a bit. Assim, você definirá todos os bits como 1, exceto o bit do sistema.and
-ing-lo com a máscara irá definir o sistema para 0 e deixar todos os outros bits intactos porque0 & x = 0
e1 & x = x
para qualquerx
fonte
a
só é avaliado uma vez? Por que seria avaliado mais vezes do que isso?a |= b
realmente significaa = a || b
?Você pode fazer isso assim:
fonte
^= bit
definirá o bit se ainda não estiver definido,&= ~bit
não o definirá.