Je lisais un code 3 du parti et j'ai trouvé ceci:Que fait '^' dans C# (Enums)?
x.Flags = x.Flags^Flags.Hidden;
Que faut-il faire?
J'ai utilisé '&' et '|' pour 'bit' et 'ou' avec enums, mais c'est la première fois que je vois le symbole ...
Je lisais un code 3 du parti et j'ai trouvé ceci:Que fait '^' dans C# (Enums)?
x.Flags = x.Flags^Flags.Hidden;
Que faut-il faire?
J'ai utilisé '&' et '|' pour 'bit' et 'ou' avec enums, mais c'est la première fois que je vois le symbole ...
^est l'opérateur XOR bit à bit en C#.
EDIT: a^b renvoie vrai si a est vrai et b est faux ou si a est faux et b est vrai, mais pas les deux.
Ma mémoire des opérations au niveau du bit est un peu rouillée ... que ferait un XOR dans cette situation? –
Renvoie true si et seulement si l'un des opérandes est vrai. –
Il bascule le bit Flags.Hidden dans x.Flags. (Si c'est 1, ce sera 0, si c'est 0, ce sera 1). –
Taken de here:
Pour les types intégraux,^calcule les-OU exclusif de ses opérandes au niveau du bit. Pour les opérandes booléens,^calcule l'exclusif logique ou de ses opérandes; c'est-à-dire que le résultat est vrai si et seulement si un nombre impair de ses opérandes est vrai.
Il est l'opérateur OU exclusif (XOR), ce lien a un exemple d'utilisation
Phil ... ils ne vous travaillent pas assez dur? :) – Kev
Ce serait l'opérateur 'XOR'. Dans votre exemple de code, il activera ou désactivera Flags.Hidden, en fonction de la valeur actuelle de x.Flags. L'avantage de le faire de cette façon est qu'il vous permet de modifier le paramètre pour Flags.Hidden sans affecter les autres indicateurs qui ont été définis.
Ce n'est pas un "chapeau". C'est une pomme de terre. – Will