Вызов метода в меню калькулятора - PullRequest
0 голосов
/ 02 апреля 2020

Мне нужно создать простое меню для моего калькулятора. Я в порядке с самим меню, вызывая меню из Main() и лог c функций калькулятора. Проблема возникла, когда я попытался вызвать метод функции в методе Menu(). Ради экономии времени я собираюсь показать только две функции, чтобы я мог сам разобраться с остальными. Мне пришлось использовать структуры logi c "do ... while" и "switch ... case", так что не обращайте на них внимания. Я хочу вызывать методы функций внутри моего Menu() метода, а также использовать методы внутри других методов функций, скажем, метод CalculateSum() внутри CalculateAverage(). Когда я вызываю метод CalculateSum() в методе Menu() без параметра, я получаю сообщение об ошибке "Не указан аргумент, соответствующий необходимому формальному параметру 'numInput' Program.CalculateSum (int)" . Когда я вставляю параметр numInput в метод DisplayMenu() (как сейчас), я получаю ошибку «Имя numInput не существует в текущем контексте» .

public static bool DisplayMenu(int numInput)
{
    Console.WriteLine("1 - Calculate Sum");
    Console.WriteLine("2 - Calculate Average");
    Console.WriteLine("0 - Exit");            
    Console.WriteLine("Enter the number that corresponds to your choice: ");
    switch (Console.ReadLine())
    {
        case "1":
            CalculateSum(numInput);                               
            return true;
        case "2":                    
            CalculateAverage(numInput);
            return true;
        case "0":
            Console.WriteLine("End of the program");
            return false;
        default:
            Console.WriteLine("Invalid choice!");
            return true;
    }
}

static public int CalculateSum(int numInput)
{
    Console.WriteLine("Please enter the number of digits to add: ");
    numInput = Convert.ToInt32(Console.ReadLine());

    int sum = 0;
    int i = 1;
    do
    {
        Console.WriteLine("Please enter a digit ");
        int number = Convert.ToInt32(Console.ReadLine());
        sum = sum + number;
        i += 1;
    }
    while (i <= numInput);
    Console.Write("The sum of digits is: ");
    return sum;
 }

static void Main(string[] args)
{
    int numInput;
    bool showMenu = true;
    do
    {
        showMenu = DisplayMenu(numInput);// <--- error is here now
    }
    while (showMenu == true);
    Console.ReadKey();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...