
Connaissez-vous et utilisez-vous les énumérations en C# ? En C#, comme dans bon nombre de langages informatiques ce concept existe. Voyons au travers de ce tutoriel commet utiliser des énumérations en C#.
Comme nous l'avons déjà vu lors de tutoriels précédents dédiés au C#, nous disposons de types de données possibles comme les classes ou encore les types dits "primitifs", si on reprend l'expression du langage Java. Les énumérations sont juste un autre type de données possible.
Déclarer une énumération
De manière très simple, ce type de données va nous permettre de déclarer une variable qui ne pourra avoir que certaines valeurs prédéfinies.
enum Status
{
IDLE, // valeur 0
ATTACK, // valeur 1
DIE // valeur 2
}
Assigner une variable de type enumération
Du coup on peut déclarer et assigner une variable de type Status
Status playerStatus = Status.IDLE;
Notez comme il est désormais facile de savoir, du premier coup d'oeil dans quel état passe notre joueur ...
Un autre avantage des enum, c'est que l'on peut lui donner une valeur entière
int valeurStatus = (int) playerStatus; //cast en entier !
Dans notre exemple valeurStatus vaudra alors 0, car le premier élément de notre énumération possède " l'indice 0", exactement comme les tableaux !
Mais on peut aussi faire l'inverse:
playerStatus = (Status)2; // vaudra alors 'DIE'
Comparaison d'énumérations
Très souvent nous avons besoin de savoir quelle est la valeur de notre variable de type Status par exemple, afin de la comparer pour enfin savoir vers où diriger notre programme.
De manière très simple on peut faire en C#:
if(playerStatus == Status.IDLE ){
//make your logic
}
Pour aller encore plus loin sur la comparaison, retrouvez la documentation officielle sur les opérateurs de comparaison d'énumérations en C#.
Pourquoi utiliser des énumérations ?
Nous voici arrivés au terme de cette présentation théorique des énumérations en C#, mais certaines.es d'entre vous se demandent encore pourquoi les utiliser...
Prenons le code suivant qui n'utilise pas d'énumération:
const IDLE = "IDLE";
const ATTACK = "ATTACK";
const WALK = "WALK";
string playerStatus = WALK;
playerStatus = "jump"; //possible car playerStatus est un string
alors qu'avec notre énumération précédente, nous avions des valeurs prédéfinies
Status playerStatus = "JUMP"; //error !!
// Status playerStatus => type Status avec 3 valeurs prédéfinies !
Alors ne perdez plus de temps et utilisez dans vos prochains projets des énumérations afin de rendre plus clair, lisible et safe votre code !
A très vite !