CS0161 "Program.Calculate(string, int, int)": не все ветви кода возвращают значение. ConsoleApp1 C:\Users\денис\source\repos\calculateoncsharp\ConsoleApp1\Program.cs
public static int Calculate(string action1, int a2, int a1)
{
switch (action1){
case "pi":
return a1 + a2;
case "mi":
return a1 - a2;
case "mu":
return a1 * a2;
case "de":
return a1 / a2;
default:
Console.WriteLine("Error");
break;
}
}
Правильное решение - не возвращать какое-то нейтральные значение, а выбросить исключение:
public static int Calculate(string action1, int a2, int a1)
{
switch (action1){
case "pi":
return a1 + a2;
case "mi":
return a1 - a2;
case "mu":
return a1 * a2;
case "de":
return a1 / a2;
default:
throw new ArgumentException();
}
}
Перехватывать исключение и выводить сообщение об ошибке будет вызывающая сторона:
Console.WriteLine("Введите команду");
string action = Console.ReadLine();
try
{
int z = Calculate(action, x, y);
}
catch (ArgumentException)
{
Console.WriteLine("Команда неверна!");
}
Метод в любом случае должен возвращает значение типа int. В ветке default ничего не возвращается, поэтому и ошибка.
В default надо возвращать какое-то значение типа int, которое возвращает функция
public static int Calculate(string action1, int a2, int a1)
{
switch (action1)
{
case "pi":
return a1 + a2;
case "mi":
return a1 - a2;
case "mu":
return a1 * a2;
case "de":
return a1 / a2;
default:
Console.WriteLine("Error");
return 1;
//break;
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости