Оптимизировать код консольного меню - 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(); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д