Comment obtenir la valeur Int de Enum en C#

Payel Ganguly 12 octobre 2023
  1. Type Cast pour convertir enum en int
  2. Classe static pour convertir enum en int
  3. Utilisation de GetTypeCode() pour convertir enum en int
  4. Plus d’exemples
Comment obtenir la valeur Int de Enum en C#

Ce tutoriel explique comment obtenir la valeur int à partir de enum en C# et énumère quelques exemples de codes courants pour obtenir une vue d’ensemble du type d’énumération du C#.

L’énumération est un type de données défini par l’utilisateur ou un type de valeur qui définit généralement un ensemble de valeurs nommées constantes du type d’intégrale sous-jacent. Le mot-clé enum définit un type d’énumération dans le code. L’exemple de base est donné ci-dessous:

enum Name { Joe, Rick, John, Matt }

Le type d’énumération des valeurs constantes prédéfinies est de type de données int par défaut. Cependant, le type d’intégrale sous-jacent peut être explicitement défini comme n’importe quel autre type d’intégrale numérique comme sbyte, byte, short, ushort, int, uint, long et ulong. Le tableau ci-dessous décrit la taille et l’étendue de chaque type d’intégrale prédéfini en C#.

Mot-clé C# Taille entière Gamme
sbyte signé 8-bit [-128, 127]
byte non signé 8-bit [0, 255]
short signé 16-bit [-32,768, 32,767]
ushort non signé 16-bit [0, 65,535]
int signé 32-bit [-2,147,483,648, 2,147,483,647]
uint non signé 32 bits [0, 4,294,967,295]
long signé 64-bit [-9,223,372,036,854,775,808, 9,223,372,036,854,775,807]
ulong non signé 64 bits [0, 18,446,744,073,709,551,615]

Type Cast pour convertir enum en int

Obtenir une valeur “in” à partir d’un “énum” n’est pas aussi générique qu’il n’y paraît, car le défi se situe au niveau des types de données. Voir l’exemple suivant.

public enum Days { Numbers = 20, DayType = 3 }
int abc = (int)Days.Numbers;
Console.WriteLine(abc);

Production:

20

Il peut y avoir différents types sous-jacents pour enum, ce qui peut être un peu délicat pour les programmeurs. Le code ci-dessus stocke la valeur int de Days enum à abc. Dans ce cas, la méthode Typecasting est utilisée pour changer le type de données d’une entité en un autre type de données, assurant une utilisation correcte des variables. Mais il n’est pas toujours préférable d’utiliser le typecasting.

Il existe des moyens qui ne dépendent pas du Typecasting et qui peuvent être assez simples. Ces méthodes sont expliquées en détail dans les exemples de code ci-dessous.

Classe static pour convertir enum en int

using System;

class Demo {
  public static class Subjects {
    public const int maths = 2;
    public const int science = 3;
    public const int english = 4;
    public const int history = 5;
  }
  public static void Main() {
    int xyz = Subjects.science;
    Console.WriteLine(xyz);
  }
}

Production:

3

Le code ci-dessus montre que Subjects.science obtient la bonne valeur de 3 sans penser à taper la bonne valeur entière.

Utilisation de GetTypeCode() pour convertir enum en int

using System;

class Demo {
  public enum Subjects { maths, science, english, history }
  public static void Main() {
    Subjects Maths = Subjects.maths;
    Object sub = Convert.GetTypeCode(Maths);
    Console.WriteLine(sub);
  }
}

Production:

Int32

Si un programmeur ne veut pas utiliser static const, alors il peut utiliser la méthode ci-dessus de GetTypeCode(). Tout le code ci-dessus extrait avec succès l’entier du type enum. Les exemples ci-dessous vous aideront à trouver d’autres idées.

Plus d’exemples

Exemple 1:

using System;

class Demo {
  public enum Positions { Role = 2, Project = 3, Jobs = 4 }
  public static void Main() {
    int a = (int)Positions.Jobs;
    Console.WriteLine(a);
  }
}

Production:

4

Exemple 2:

using System;

class Demo {
  public enum Galaxy : long { Sun = 1, S5HVS1 = 2, HD140283 = 2147977653 }
  ;

  public static void Main() {
    long solar = (long)Galaxy.HD140283;
    Console.WriteLine(solar);
  }
}

Production:

2147977653

Article connexe - Csharp Integer

Article connexe - Csharp Enum