Enums zijn zowel binnen als buiten de scope van een Class aan te maken.
//enum voorbeeld
enum AnimeCharacter
{
Goku,
Ichigo,
SpikeSpiegel,
Kakashi = 11,
Kenshiro,
Luffy
}
Het type value van een enum is int, waarbij de eerste optie "Goku" start op 0.
Je kan deze aanpassen door een nieuwe int value toe te kennen met "=" assignment operator, zoals je kan zien bij "Kakashi" die op 11 gezet wordt. Alle opties na "Kakashi" teller weer door, dus "Kenshiro" heeft dan de waarde 12.
//voorbeeld toekennen van een enum
public class Game
{
private AnimeCharacter character
void ChooseCharacter()
{
character = AnimeCharcater.Goku;
}
}
Hier zie je dat de enum in een variabele gezet wordt en in de method ChooseCharacter toegekend wordt.
Een Enum en een Switch hebben een hele prettige synergie. Hierdoor gaat de leesbaarheid omhoog en de foutgevoeligheid omlaag! Hier volgt een voorbeeld:
AnimeCharacter animChars = AnimeCharacter.Kenshiro;
switch (animChars)
{
case AnimeCharacter.Goku:
print("Kamehameha!");
break;
case AnimeCharacter.Ichigo:
print("Getsuga Tenshou!");
break;
case AnimeCharacter.SpikeSpiegel:
print("They Say Hunger is the Best Spice.");
break;
case AnimeCharacter.Kakashi:
print("Kamui!");
break;
case AnimeCharacter.Kenshiro:
print("Omae Wa Mou Shindeiru");
break;
case AnimeCharacter.Luffy:
print("Gomu Gomu no Gatling");
break;
}
De case check is nu de enum die een variable check van dit type enum. Hierdoor staat er dus geen nummer meer maar een leesbaar woord en in de context hoeft je nu dus niet te onthouden welke state wat is.