Open artyom-yakovenko opened 8 years ago
Originally from issue #16 by Denys:
Все сделано исключая : только метода Exit - он действительно делает выход из программы! и там, где ты мне сказал, что не нужен break после default. Если я удаляю его то выдает ошибку что он нужен! default: Console.WriteLine("input is not correct");// на отдельной строке! break; // в ветке default это не нужно
По поводу default ты прав - я опрометчиво поспешил с тем комментарием, даже его не проверив, и сам оказался в дураках :)
А вот по поводу метода Exit у меня всё так же вопрос, зачем он.
Во-первых, сам по себе этот твой метод содержит один лишь вызов Environment.Exit(0); и при этом в твоей программе он вызывается только в одном месте, а именно в методе Run. Вопрос: зачем выносить одну строчку кода, которая вызывается только в одном месте, в отдельный метод? Вместо одной строки ты добавил четыре, однако смысла в этом я особо не вижу.
Во-вторых, зачем тебе этот метод Exit, если ты мог бы вместо него просто использовать инструкцию return; для выхода из метода Run и, соответственно, завершения работы программы.
С самим по себе вызовом Environment.Exit(0); ничего неправильного нет. Это полезный метод и он, в общем-то, делает то, что тебе надо. Однако всему своё место: его следует использовать не просто для быстрого выхода из программы, когда и обычный return; подошёл бы, а для того, чтобы передать в вызывающую среду так называемый "код выхода". Думаю, что я не ошибусь, если предположу, что ты явно не для этого его использовал, верно? ;)
Сейчас это выглядит так, как если бы ты пришёл и забил в стенку гвоздь огнетушителем, тогда как рядом на столе у тебя лежит молоток. Как бы вроде и ничего страшного - гвоздь в итоге в стену забит. Только вот... зачем огнетушителем, если есть молоток? ;)
Мораль: никогда не пиши какой-то код "просто так", не до конца понимая зачем. Нашёл какой-нибудь кусочек кода, который решает твою задачу? Отлично! Но никогда слепо его не копируй, пока не разобрался в каждой строчке. Иначе когда-нибудь может больно выстрелить в ногу!
Привет,
Я добавил ряд комментариев в целом к коду. Обнови, пожалуйста, проект на своей машине, проанализируй комментарии и исправь огрехи в стиле соответствующим образом.
Второй момент: обрати внимание, как неудобно получается, что когда задача выполнена и выведен на экран ответ, сразу же выводится меню. Это немного сбивает с толку, так как в результате видишь меню и приходится глазами искать, где же ответ.
Давай сделаем так, чтобы после вывода ответа, показывалось какое-нибудь сообщение типа "Нажмите ENTER, чтобы продолжить..." и только после нажатия клавиши ENTER показывалось бы меню.
Всегда старайся ставить себя на место пользователя и пытаться представить, насколько удобно пользоваться твоей программой, как можно улучшить. Даже если это не относится к сфере твоей ответственности, всё равно делись мнением. Беги без оглядки из компаний и коллективов, в которых твоё мнение и предложения не рассматриваются, а сразу затыкают рот без особых объяснений. Нечего на таких работах делать ;)
Конкретно по задачам комментарии отпишу в соответствующих issues.