Оптимизировать код консольного меню - 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();
    }
}

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


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

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

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