Оптимизировать код консольного меню - C#
Формулировка задачи:
Как можно оптимизировать код. Точнее, уменьшить.
Листинг программы
- class ManufacturerMenu
- {
- public static void Show()
- {
- Title = "\tМеню роботи з базою "Виробники"";
- Clear();
- WriteLine("\tРедагування бази "Виробники"");
- WriteLine("\n1. Додати нового виробника");
- WriteLine("2. Редагувати існуючого виробника");
- WriteLine("3. Видалити існуючого виробника");
- WriteLine("\n9. Повернутися до головного меню");
- WriteLine("\n0. Повернутися до попереднього меню");
- Write("\nВиберіть дію яку ви хочете виконати: ");
- Choose();
- }
- public static void Choose()
- {
- string choice = (ReadLine());
- Clear();
- switch (choice)
- {
- case "0":
- DataBaseEditMenu.Show();
- break;
- case "1":
- AddManufacturer();
- break;
- case "2":
- EditManufacturer();
- break;
- case "3":
- DeleteManufacturer();
- break;
- case "9":
- MainMenu.Show();
- break;
- default:
- Show();
- break;
- }
- }
- private static void AddManufacturer()
- {
- ObjectToStringConverter display = new ObjectToStringConverter();
- WriteLine("Список існуючих виробників\n");
- var manufacturer = display.ManufacturerListToText();
- foreach (var man in manufacturer)
- {
- Console.WriteLine(man);
- }
- Write("\nВведіть назву виробника : ");
- string ManufacturerName = (ReadLine());
- Clear();
- WriteLine("Назва виробника : {0}", ManufacturerName);
- WriteLine("\nВиробника введено успішно!");
- WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
- ReadLine();
- Show();
- }
- private static void EditManufacturer()
- {
- ObjectToStringConverter display = new ObjectToStringConverter();
- WriteLine("Список існуючих виробників\n");
- var manufacturer = display.ManufacturerListToText();
- foreach (var man in manufacturer)
- {
- Console.WriteLine(man);
- }
- Write("\nВведіть ID виробника : ");
- int ManufacturerID = Convert.ToInt32(Console.ReadLine());
- string ManufacturerName = display.ManufacturerToText(ManufacturerID);
- Clear();
- WriteLine("Виробник : {0}", ManufacturerName);
- WriteLine("\nВведіть нову назву виробника : ");
- ManufacturerName = (ReadLine());
- WriteLine("\nНазву виробника змінено : {0}", ManufacturerName);
- WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
- ReadLine();
- Show();
- }
- private static void DeleteManufacturer()
- {
- ObjectToStringConverter display = new ObjectToStringConverter();
- WriteLine("Список існуючих виробників\n");
- var manufacturer = display.ManufacturerListToText();
- foreach (var man in manufacturer)
- {
- Console.WriteLine(man);
- }
- Write("\nВведіть ID виробника : ");
- int ManufacturerID = Convert.ToInt32(Console.ReadLine());
- string ManufacturerName = display.ManufacturerToText(ManufacturerID);
- Clear();
- WriteLine("Виробника {0} видалено успішно!", ManufacturerName);
- WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
- ReadLine();
- Show();
- }
- }
- }
Решение задачи: «Оптимизировать код консольного меню»
textual
Листинг программы
- static Dictionary<string, Action> menuChoices = new Dictionary<string, Action>()
- {
- { "0", DataBaseEditMenu.Show},
- { "1", AddManufacturer },
- { "2", EditManufacturer },
- { "3", DeleteManufacturer },
- { "9", MainMenu.Show }
- };
- public static void Choose()
- {
- string choice = ReadLine();
- Clear();
- Action action;
- if (menuChoices.TryGetValue(choice, out action))
- {
- action();
- }
- else
- {
- Show();
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д