@crowcs

Как вернуться к начальному методу без перегрузки не заканчивая код?

У меня есть методы, допустим один из них Menu, другой CarSalon, мне надо зайти в метод CarSalon, купить там машину, и вернуться в метод Menu не заканчивая программу. Вариант я нашел только один при выборе методов в Menu у меня есть методы Salon, Race и т.д., после обращение к этим методам я опять обращаюсь к методу Menu, только в этом случае не заканчивается программа. Если я не ошибаюсь то это будет вызывать перегрузку, и рано или поздно выйдет Stack Overflow, подскажите будет перегрузка или нет? Если будет, то как мне сделать так чтобы я обращался к разным методам без перегрузки. Вот код которого должно хватить для понятия:
try// часть Menu
{
int MenuOption = int.Parse(Console.ReadLine());

if (MenuOption == 1)//Обращение к другому методу
{
Console.Clear();
Console.WriteLine($"Хорошо {Name}, переношу в раздел Информации");
Info(Name, Menu.YouCarBrand, KM100YouCar, MaxSpeedYouCar);
}

if (MenuOption == 2)//Обращение к другому методу
{
Console.Clear();
Console.WriteLine($"Хорошо {Name}, переношу в раздел Салона");
Salon.SalonMenu(Name, MoneyBalance, Price, MaxSpeed, TimeToSpeed100KM, CarNumber, CarBrand, MaxSpeedYouCar, KM100YouCar, YouCarBrand);

SalonBuy();
}

if (MenuOption == 3)//Обращение к другому методу
{
Console.Clear();
Console.WriteLine($"Хорошо {Name}, отправляемся в Гонку");
}
if (MenuOption <= 0)
{
Console.Clear();
Console.WriteLine($"{Name}, такого выбора нету!");
MainMenu(Name);
}

if (MenuOption >= 3)
{
Console.Clear();
Console.WriteLine($"{Name}, такого выбора нету!");
MainMenu(Name);
}
}
catch (Exception)
{
Console.WriteLine($"{Name}, такого выбора нету, переношу в меню!");
Console.Clear();
MainMenu(Name);
}

void SalonBuy()
{
Console.WriteLine("Какую машину вы хотите купить?");
/Код покупки машины в методу Salon, в конце возвращение через перегрузку

int BuyCar = int.Parse(Console.ReadLine());
int NumCar = BuyCar - 1;
Console.Clear();
if (BuyCar == CarNumber[NumCar] && MoneyBalance >= Price[NumCar])
{
YouCarBrand = CarBrand[NumCar];
KM100YouCar = TimeToSpeed100KM[NumCar];
MaxSpeedYouCar = MaxSpeed[NumCar];
MoneyBalance = MoneyBalance - Price[NumCar];
Console.WriteLine($"Вы успешно купили {CarBrand[NumCar]}");

Console.ReadLine();
MainMenu(Name);
}

else
{
Console.WriteLine($"Вам не хватило денег на {CarBrand[NumCar]}");
}
//Не обращайте внимание что методы Salon именованы по разному, вопрос бы стал слишком большой, выход все равно будет Menu
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
HemulGM
@HemulGM
Delphi Developer, сис. админ
У тебя должен быть изначально цикл, который ждет команду по меню. Выбрав команду, сделав все там вещи и закончив процедуру ты попадешь опять в этот цикл и всё пойдёт по кругу.

P.S. ну начните уже думать, люди. Это ведь элементарная логика
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы