C# Language enum


Exemple

Le mot clé enum indique au compilateur que cette classe hérite de la classe abstraite Enum , sans que le programmeur ait à l'hériter explicitement. Enum est un descendant de ValueType , destiné à être utilisé avec un ensemble distinct de constantes nommées.

public enum DaysOfWeek
{
    Monday,
    Tuesday,
}

Vous pouvez éventuellement spécifier une valeur spécifique pour chacun (ou certains d'entre eux):

public enum NotableYear
{
   EndOfWwI = 1918;
   EnfOfWwII = 1945,
}

Dans cet exemple, j'ai omis une valeur pour 0, c'est généralement une mauvaise pratique. Une enum aura toujours une valeur par défaut produite par conversion explicite (YourEnumType) 0 , où YourEnumType est votre type d' enume déclaré. Sans une valeur de 0 définie, un enum n'aura pas de valeur définie à l'initiation.

Le type sous-jacent de enum est int , vous pouvez changer le type sous-jacent en n'importe quel type entier, y compris byte , sbyte , short , ushort , int , uint , long et ulong . Vous trouverez ci-dessous un enum avec le type sous-jacent byte :

enum Days : byte
{
    Sunday = 0,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
};

Notez également que vous pouvez convertir vers / à partir du type sous-jacent simplement avec une distribution:

int value = (int)NotableYear.EndOfWwI;

Pour ces raisons, vous devriez toujours vérifier si une enum est valide lorsque vous exposez les fonctions de la bibliothèque:

void PrintNotes(NotableYear year)
{
    if (!Enum.IsDefined(typeof(NotableYear), year))
        throw InvalidEnumArgumentException("year", (int)year, typeof(NotableYear));

    // ...
}