Калькулятор с использованием Enum - PullRequest
0 голосов
/ 07 февраля 2020

Привет, поэтому я пытаюсь создать простой калькулятор, используя enum в моем коде для доступа к операторам, которые теоретически будет вводить пользователь. Проблема и настройка в изображении ниже. Однако я не могу понять, почему этот код не будет работать. Кто-нибудь может привести меня в правильном направлении? Мне не нужно фактическое решение, а только пу sh к нему.

task description

Это код, который у меня есть.

enum MathOperator
{
    Add,
    Subtract,
    Multiply,
    Divide,
};

    public double Test5(double num1, double num2, MathOperator op)
    {
        double num3;

     switch (op)
        {
            case MathOperator.Add:
                num3 = num1 + num2;
                return num3;
            case MathOperator.Subtract:
                num3 = num1 - num2;
                return num3;
            case MathOperator.Multiply:
                num3 = num1 * num2;
                return num3;
            case MathOperator.Divide:
                num3 = num1 / num2;
                return num3;
        };

Я пытался поместить enum в тело кода, опуская publi c перед enum, используя switch (MathOperator) и многое другое, но я не могу заставить его работать даже удаленно.

Там 3 ошибки:

CS0535 - «Представление» не реализует интерфейсный элемент Tests.Test5 (double, double, MatheOperator)

CS0161 - Submission.Test5 (double, double, Submission .MathOperator): не все пути кода возвращают значение

CS0051 - несовместимая доступность: тип параметра 'Submission.MathOperator менее доступен, чем метод Submission.Test5 (double, double, Submission.MathOperator).

1 Ответ

1 голос
/ 07 февраля 2020

Я не уверен, что вы спрашиваете, но ваше консольное приложение должно выглядеть следующим образом

class Program
{
    //add public for the error: inconsist accessibility bla bla..
    public enum MathOperator { Add, Subtract, Multiply, Divide, }; 

    static void Main(string[] args)
    {
        Console.WriteLine(Test5(10, 10, MathOperator.Add));
    }

    public static double Test5(double num1, double num2, MathOperator op)
    {
        double num3;

        switch (op)
        {
            case MathOperator.Add:
                num3 = num1 + num2;
                return num3;
            case MathOperator.Subtract:
                num3 = num1 - num2;
                return num3;
            case MathOperator.Multiply:
                num3 = num1 * num2;
                return num3;
            case MathOperator.Divide:
                num3 = num1 / num2;
                return num3;
           //add default switch case for error: not all code paths return a value  bla bla..
            default:
                return 0;
        };

    }
}
...