una todas solo significa que porque palomitas palomita las grises gris flechas flecha doble cuando conversaciones check azules aparecen aparece c# operators bitwise-operators

c# - todas - ¿Qué significa |=(un solo tubo igual) y &=(un solo y único igual) significa



whatsapp 1 tilde (3)

Quiero eliminar el atributo del sistema con los demás ...

Puedes hacer esto así:

Folder.Attributes ^= FileAttributes.System;

En líneas abajo:

//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 |= (un solo tubo igual) y &= (un solo &= único igual) significan en C #
Quiero eliminar el atributo del sistema para mantener a los demás ...


Son operadores de asignación compuesta , traduciendo (muy libremente)

x |= y;

dentro

x = x | y;

y lo mismo para & . Hay un poco más de detalle en algunos casos con respecto a un elenco implícito, y la variable objetivo solo se evalúa una vez, pero eso es básicamente lo esencial.

En términos de operadores no compuestos, & es un "AND" bit a bit | es un bit a bit "O" .

EDITAR: En este caso, quiere Folder.Attributes &= ~FileAttributes.System . Para entender por qué:

  • ~FileAttributes.System significa "todos los atributos excepto System " ( ~ es un bitwise-NOT)
  • & significa "el resultado son todos los atributos que ocurren en ambos lados del operando"

Por lo tanto, básicamente actúa como una máscara; solo conserva los atributos que aparecen en ("todo excepto el sistema"). En general:

  • |= solo agregará bits al objetivo
  • &= solo eliminará bits del objetivo

a |= b es equivalente a a = a | b a = a | b excepto que a se evalúa solo una vez
a &= b es equivalente a a = a & b excepto que a se evalúa solo una vez

Para eliminar el bit del sistema sin cambiar otros bits, use

Folder.Attributes &= ~FileAttributes.System;

~ es una negación a nivel de bit. Así establecerá todos los bits a 1, excepto el bit del sistema. and -ing it con la máscara establecerá System en 0 y dejará intactos todos los demás bits porque 0 & x = 0 y 1 & x = x para cualquier x