Оптимизировать код консольного меню - C#

Узнай цену своей работы

Формулировка задачи:

Как можно оптимизировать код. Точнее, уменьшить.
Листинг программы
  1. class ManufacturerMenu
  2. {
  3. public static void Show()
  4. {
  5. Title = "\tМеню роботи з базою "Виробники"";
  6. Clear();
  7. WriteLine("\tРедагування бази "Виробники"");
  8. WriteLine("\n1. Додати нового виробника");
  9. WriteLine("2. Редагувати існуючого виробника");
  10. WriteLine("3. Видалити існуючого виробника");
  11. WriteLine("\n9. Повернутися до головного меню");
  12. WriteLine("\n0. Повернутися до попереднього меню");
  13. Write("\nВиберіть дію яку ви хочете виконати: ");
  14. Choose();
  15. }
  16. public static void Choose()
  17. {
  18. string choice = (ReadLine());
  19. Clear();
  20. switch (choice)
  21. {
  22. case "0":
  23. DataBaseEditMenu.Show();
  24. break;
  25. case "1":
  26. AddManufacturer();
  27. break;
  28. case "2":
  29. EditManufacturer();
  30. break;
  31. case "3":
  32. DeleteManufacturer();
  33. break;
  34. case "9":
  35. MainMenu.Show();
  36. break;
  37. default:
  38. Show();
  39. break;
  40. }
  41. }
  42. private static void AddManufacturer()
  43. {
  44. ObjectToStringConverter display = new ObjectToStringConverter();
  45. WriteLine("Список існуючих виробників\n");
  46. var manufacturer = display.ManufacturerListToText();
  47. foreach (var man in manufacturer)
  48. {
  49. Console.WriteLine(man);
  50. }
  51. Write("\nВведіть назву виробника : ");
  52. string ManufacturerName = (ReadLine());
  53. Clear();
  54. WriteLine("Назва виробника : {0}", ManufacturerName);
  55. WriteLine("\nВиробника введено успішно!");
  56. WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
  57. ReadLine();
  58. Show();
  59. }
  60. private static void EditManufacturer()
  61. {
  62. ObjectToStringConverter display = new ObjectToStringConverter();
  63. WriteLine("Список існуючих виробників\n");
  64. var manufacturer = display.ManufacturerListToText();
  65. foreach (var man in manufacturer)
  66. {
  67. Console.WriteLine(man);
  68. }
  69. Write("\nВведіть ID виробника : ");
  70. int ManufacturerID = Convert.ToInt32(Console.ReadLine());
  71. string ManufacturerName = display.ManufacturerToText(ManufacturerID);
  72. Clear();
  73. WriteLine("Виробник : {0}", ManufacturerName);
  74. WriteLine("\nВведіть нову назву виробника : ");
  75. ManufacturerName = (ReadLine());
  76. WriteLine("\nНазву виробника змінено : {0}", ManufacturerName);
  77. WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
  78. ReadLine();
  79. Show();
  80. }
  81. private static void DeleteManufacturer()
  82. {
  83. ObjectToStringConverter display = new ObjectToStringConverter();
  84. WriteLine("Список існуючих виробників\n");
  85. var manufacturer = display.ManufacturerListToText();
  86. foreach (var man in manufacturer)
  87. {
  88. Console.WriteLine(man);
  89. }
  90. Write("\nВведіть ID виробника : ");
  91. int ManufacturerID = Convert.ToInt32(Console.ReadLine());
  92. string ManufacturerName = display.ManufacturerToText(ManufacturerID);
  93. Clear();
  94. WriteLine("Виробника {0} видалено успішно!", ManufacturerName);
  95. WriteLine("Натисніть будь яку клавішу для повернення до попереднього меню.");
  96. ReadLine();
  97. Show();
  98. }
  99. }
  100. }

Решение задачи: «Оптимизировать код консольного меню»

textual
Листинг программы
  1. static Dictionary<string, Action> menuChoices = new Dictionary<string, Action>()
  2. {
  3.     { "0", DataBaseEditMenu.Show},
  4.     { "1", AddManufacturer      },
  5.     { "2", EditManufacturer     },
  6.     { "3", DeleteManufacturer   },
  7.     { "9", MainMenu.Show        }
  8. };
  9.  
  10. public static void Choose()
  11. {
  12.     string choice = ReadLine();
  13.     Clear();
  14.  
  15.     Action action;
  16.     if (menuChoices.TryGetValue(choice, out action))
  17.     {
  18.         action();
  19.     }
  20.     else
  21.     {
  22.         Show();
  23.     }
  24. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут