class Program
{
static void Main()
{
int i;
try
{
do
{
Console.ForegroundColor = ConsoleColor.DarkCyan;
Console.Write("1) Первый пункт\n2) Второй пункт\n3) Пока не доступно!\n\n");
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write("Выберите пункт: ");
i = int.Parse(Console.ReadLine());
Console.WriteLine();
switch (i)
{
case 1: Glas.Geto; break;
case 2: Glas.Viser(); break;
case 3: Console.WriteLine("0opps"); break;
default: Console.WriteLine("Вы что-то другое нажали..."); break;
}
}
while (i != 3);
}
catch { }
}
}
Подскажите можно ли как-то улучшить вывод?
Как-то не очень смотрится с Console.Write("1)\n 2\n")
Для такой простой программы я бы не стал заморачиваться и оставил всё как есть.
Если когда-нибудь вы захотите чего-то реально сложного, например, динамическую систему пунктов, конфигурируемость и ещё какие-нибудь какие-нибудь энтерпрайзные фичи, можно будет обобщить это, создав описатель меню:
class MenuItem
{
public MenuItem(string name, Action actionOnCall)
{
Name = name;
ActionOnCall = actionOnCall;
}
private readonly Action ActionOnCall;
public string Name { get; }
public Execute() => ActionOnCall();
}
Теперь ваше меню можно представить в таком виде:
IEnumerable<MenuItem> Items = new MenuItem[]
{
new MenuItem("Первый пункт", Glas.Geto),
new MenuItem("Второй пункт", Glas.Viser),
new MenuItem("Пока не доступно!", () => Console.WriteLine("Oops"))
}
И код будет выглядеть так:
while (true)
{
var items = Items.ToList(); // имеют право поменяться => фиксируем
Console.ForegroundColor = ConsoleColor.DarkCyan;
for (int idx = 0; idx < items.Length; idx++)
Console.WriteLine($"{i}) {items[i].Name}");
Console.WriteLine($"{items.Length}) Выход");
Console.WriteLine();
Console.ForegroundColor = ConsoleColor.Gray;
Console.Write("Выберите пункт: ");
int userInput;
if (!int.TryParse(Console.ReadLine(), out userInput))
userInput = -1;
Console.WriteLine();
if (0 <= userInput && userInput < items.Length)
items[userInput].Execute();
else if (userInput == items.Length)
break;
else
Console.WriteLine("Вы что-то другое нажали...");
}
Я бы сказал, что стало намного сложнее, и так переписывать программу не стоит.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Допустим, есть БД, заполненная большим количеством объектовИ на сервер можно послать GET запрос на получение всех этих объектов, пусть условно...
При изменении како-го либо компонента на форме, каких-то манипуляций, когда нажимаю F5 для запуска отладки переодически выходит окошко с предложением...
Я правильно понимаю, что проект сайта сейчас не актуален и лучше использовать Web App?