Estoy probando un fragmento de ejemplo que he encontrado como respuesta en another Questionoperador && no se puede aplicar
Sin embargo, el compilador es escupir a cabo esta "Operador & & no se puede aplicar a operandos de tipo largo y bool". ¿Por qué hace esto? Cuando leo el código, dice "Si la máscara y el permiso son mayores que 0, devuelva el éxito bool"
¿Estoy leyendo esto mal?
(Además, nadie lo llamaron como un mal ejemplo por lo que esperaba que funcione. No es que yo soy un codificador de copiar y pegar)
bool CheckMask(long Mask, long TestPermission) {
return Mask && TestPermission > 0;
}
long mask = 4611686844973976575;
const long MASK_ViewListItems = 0x0000000000000001;
bool HasPermission_ViewListItems = CheckMask(mask, MASK_ViewListItems);
// HasPermission_ViewListItems is true
const long MASK_UseClientIntegration = 0x0000001000000000;
bool HasPermission_UseClientIntegration = CheckMask(mask, MASK_UseClientIntegration);
// HasPermission_UseClientIntegration is false
Hay una gran cantidad de preguntas similares sobre StackOverflow y he hecho clic en la mayoría de ellos, hay una gran lista a mi derecha mientras escribo. Ninguno se ha aplicado a mi situación, al menos pude ver la relación entre las respuestas y mi problema.
Gracias, esto fue muy informativo, terminé aprendiendo bastante sobre el cambio de bit implementando estas ideas. – Amicable