Как завершить выполнение метода по команде?
Всем доброго времени суток. Есть консольное приложение, в котором по командам вызываются CRUD функции для анкет. Можно ли как-нибудь выйти из функции, введя команду -exit вместо входных данных, не нагромождая всё if'ами и проверками? То есть, во время ввода поля experience ввести команду вместо данных и выйти из функции.
Main:
while (alive)
{
Console.WriteLine("Enter the command (-help for command list):");
switch (Console.ReadLine())
{
case "-new_form":
var form = new Form();
DbHandler.AddForm(DbHandler.NewProfile(form));
break;
...
NewProfile:
public static Form NewProfile(Form form)
{
Console.WriteLine("Enter your birth date: ");
form.Date = Console.ReadLine();
Console.WriteLine("Enter your programming language: ");
form.ProgLang = Console.ReadLine();
Console.WriteLine("Enter your experience (in years): ");
form.Experience = ToInt32(Console.ReadLine());
Console.WriteLine("Enter your phone number: ");
form.PhoneNumber = Console.ReadLine();
return form;
}
AddForm:
public static void AddForm(Form form)
{
var db = new ApplicationContext();
db.Forms.Add(form);
db.SaveChanges();
Console.WriteLine("Successfully added!");
}
Ответы (1 шт):
сделай основную функцию которая будет заниматься исключительно обработкой комманд/навигацию по методам.
while (true)
{
var input = Console.ReadLine().ToLower();
if (input == "exit")
break;
switch (input)
{
case "new_form":
NewFormFunc();
break;
case "func1":
Func1();
break;
case "func2":
Func2();
break;
}
}
И кучу функций которые отвечают за сами команды.
Таким макаром у тебя будет каждая функция отвечать за некую ограниченную ответственность. Например код который я выше написал - это только навигация и ничего более. Каждая функция - это своя область ответственности которая с навигацией не пересекается.