Puis-je "invert" un bool?
J'ai quelques vérifications pour voir si un écran est actif. Le code ressemble à ceci:
if (GUI.Button(new Rect(Screen.width / 2 - 10, 50, 50, 30), "Rules")) //Creates a button
{
if (ruleScreenActive == true) //check if the screen is already active
ruleScreenActive = false; //handle according to that
else
ruleScreenActive = true;
}
Est-il de toute façon à chaque fois que je clique sur le bouton inverser la valeur de ruleScreenActive
?
(C'est C# dans Unity3D)
- Même sans une meilleure optimisation, vous pouvez supprimer tous les
== true
à partir de votre code.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez vous débarrasser de votre if/else en niant l'bool valeur:
x ^= true;
. Est plus joli (à mon avis) et la plus courte dans la plupart des cas, mais en fait de même.Je pense qu'il est préférable d'écrire:
de cette façon, vous éviter d'écrire le nom de la variable y à deux fois ... ce qui peut conduire à des erreurs
parent.GetChild(0).GetRenderOptions().flipX ^= true;
Ce serait inline, de sorte que la lisibilité augmente, la durée d'exécution des coûts reste le même:
À donner:
String.Replace
renvoie une valeur plutôt que de la modifier, même si les gens savent chaînes dans .NET sont immuables). En le nommantInvert
au lieu deInverted
rend encore plus probable.Toggle
sonne mieux à mon humble avisToggled
this bool val
avec une propriété, si je pouvais faire quelque chose commemyBool.Not;
?