En C, enums
, équivaut en interne à un entier. Par conséquent, nous pouvons également traiter les types de données enum
comme des entiers.
Comment faire la même chose avec C# ?
En C, enums
, équivaut en interne à un entier. Par conséquent, nous pouvons également traiter les types de données enum
comme des entiers.
Comment faire la même chose avec C# ?
Une autre façon de convertir un Enum-Type en un int :
enum E
{
A = 1, /* index 0 */
B = 2, /* index 1 */
C = 4, /* index 2 */
D = 4 /* index 3, duplicate use of 4 */
}
void Main()
{
E e = E.C;
int index = Array.IndexOf(Enum.GetValues(e.GetType()), e);
// index is 2
E f = (E)(Enum.GetValues(e.GetType())).GetValue(index);
// f is E.C
}
Plus complexe mais indépendant des valeurs INT affectées aux valeurs enum.
Par défaut, le type sous-jacent de chaque élément de l'énumération est entier.
enum Values
{
A,
B,
C
}
Vous pouvez également spécifier une valeur personnalisée pour chaque élément :
enum Values
{
A = 10,
B = 11,
C = 12
}
int x = (int)Values.A; // x will be 10;
Remarque : Par défaut, le premier énumérateur a la valeur 0.
Vous pouvez le caster directement :
enum MyMonthEnum { January = 1, February, March, April, May, June, July, August, September, October, November, December };
public static string GetMyMonthName(int MonthIndex)
{
MyMonthEnum MonthName = (MyMonthEnum)MonthIndex;
return MonthName.ToString();
}
Par exemple:
string MySelectedMonthName=GetMyMonthName(8);
//then MySelectedMonthName value will be August.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.