Мне нужно создать простое меню для моего калькулятора. Я в порядке с самим меню, вызывая меню из 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();
}