Enum

De Banane Atomic
Aller à la navigationAller à la recherche

Bases

Csharp.svg
enum MyEnum { Un, Deux }

// Compter le nombre d’élément d’une énumération.
int count = Enum.GetValues(typeof(MyEnum)).Length;

// Nom du nième élément de l'énumération.
Enum.GetName(typeof(MyEnum), 1);  // → "Deux"

// Liste des noms des éléments de l'énumération.
Enum.GetNames(typeof(MyEnum));  // → "Un"  |  "Deux"

// Liste des valeurs de l'énumération.
Enum.GetValues(typeof(MyEnum));  // → MyEnum.Un  |  MyEnum.Deux

Convertions

int / byte

Csharp.svg
byte unEntier = 1;
MyEnum myEnum = (MyEnum)unEntier;  // Deux

byte unEntier = (byte)MyEnum.Deux;  // 1

string

Csharp.svg
// Parser un string en enum. Génère un ArgumentException en cas d'échec.
MyEnum myEnum = (MyEnum)Enum.Parse(typeof(MyEnum), "un", true);
// 3ème arg: IgnoreCase

MyEnum myEnum;
if (Enum.TryParse("un", true, out myEnum)) { }

Flags

Csharp.svg
[Flags]
public enum Font {
    Gras = 1,
    Italique = 2,
    Souligné = 4
}

// gras et italique
Font font = Font.Gras | Font.Italique;

// ajout de souligné
font |= Font.Souligné;

// suppression de souligné
font &= ~Font.Souligné;

if ((font & Font.Souligné) == Font.Souligné) { }

Default value

Csharp.svg
int i = default(MyEnum);
// retourne toujours 0, même si 0 n'est pas une valeur valide