2245 votes

Obtenez de l'int valeur de l'enum

J'ai une classe appelée Questions. Dans cette classe il y a une énumération de questions qui ressemble à ceci.

public enum Question
{
    Role = 2,
    ProjectFunding = 3,
    TotalEmployee = 4,
    NumberOfServers = 5,
    TopBusinessConcern = 6
}

Dans l' Questions classe j'ai un get(int foo) fonction qui retourne un Questions objet pour qu' foo. Est-il un moyen facile pour obtenir la valeur de l'entier hors de l'enum si je peux faire quelque chose comme ce Questions.Get(Question.Role)?

2835voto

Tetraneutron Points 8494

Juste lancer la enum par exemple.

int something = (int)Question.Role;

367voto

cecilphillip Points 4020

Depuis les Énumérations peuvent être n'importe quel type intégral (short, byte, int, etc...), une façon plus robuste pour obtenir le sous-jacent partie intégrante de la valeur de l'enum serait de faire usage de la GetTypeCode méthode en conjonction avec la classe Convert

enum Sides {
     Left, Right, Top, Bottom
}
Sides side = Sides.Bottom;

object val = Convert.ChangeType(side, side.GetTypeCode()) ;
Console.WriteLine(val);

Cela devrait fonctionner quel que soit le sous-jacent de type intégral type.

217voto

PablosBicicleta Points 459

Déclarer comme une classe statique avec des constantes.

public static class Question
{
    public const int Role = 2;
    public const int ProjectFunding = 3;
    public const int TotalEmployee = 4;
    public const int NumberOfServers = 5;
    public const int TopBusinessConcern = 6;
}

Et puis, vous pouvez référencer comme Question.Rôle et il prend toujours la valeur d'un int ou ce que vous définissez comme.

103voto

jerryjvl Points 9310
Question question = Question.Role;
int value = (int) question;

Sera résultat en value == 2.

Prograide.com

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.

Powered by:

X