93 votes

C# : comment utiliser un enum avec un switch

Je n'arrive pas à comprendre comment utiliser les commutateurs en combinaison avec un enum. Pourriez-vous me dire ce que je fais de travers et comment y remédier ? Je dois utiliser un enum pour créer une calculatrice de base.

public enum Operator
{
    PLUS, MINUS, MULTIPLY, DIVIDE
}

public double Calculate(int left, int right, Operator op)
{

    int i = (int) op;

    switch(i)
    {
        case 0:
        {
            return left + right;
        }

        case 1:
        {
            return left - right;
        }

        case 2:
        { 
            return left * right;
        }

        case 3:
        {
            return left / right;
        }

        default:
        {
            return 0.0;
        }
    }
}

Le résultat final devrait être quelque chose comme ceci :

Console.WriteLine("The sum of 5 and 5 is " + Calculate(5, 5, PLUS))
Output: The sum of 5 and 5 is 10

Pourriez-vous me dire comment je me trompe ?

0voto

novic3 Points 106

Votre code est bon. Au cas où vous ne sauriez pas comment utiliser la fonction Calculate, essayez

Calculate(5,5,(Operator)0); //this will add 5,5
Calculate(5,5,Operator.PLUS);// alternate

Les valeurs par défaut de l'enum commencent à 0 et augmentent d'une unité pour les éléments suivants, jusqu'à ce que vous attribuiez des valeurs différentes. Vous pouvez également faire :

public enum Operator{PLUS=21,MINUS=345,MULTIPLY=98,DIVIDE=100};

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