- Некорректная обработка чисел больше размерности
int. Например,9999999999999999999=-1981284353. IndexOutOfRangeExceptionв случае пустого ввода и в случае если оператор умножения или сложения находятся в начале:+2,*2.- Программа не покрыта тестами.
- Дублирование логики в
switch - case. Символьный тип элементарно перевести в число, а блок с проверкой от'0'до'9'заменяется одной строчкой. То же самое относится к операторам'*'и'+'. - Программу тяжело будет расширять из-за жестко прописанной логики. А что если
добавить новые операторы
-,/и правоассоциативный^? Обнуление элементов массива и потом их сложение - плохое решение.
- Отсутствие отступов в некоторых местах. Чревато возникновением трудных для локализации ошибок.
- Отсутствие переносов строк. Несколько инструкций на одной строке усложняют понимание.
if (simb[i] == '*') { digt[i + 1] = digt[i + 1] * digt[i]; digt[i] = 0; }.
- Транслитерация в строках:
"Vvedite virajenie ","Ochibka vvoda". Какой в этом вообще сейчас смысл? В крайнейм случае можно использовать русский текст. - Плохие, неинформативные и не необходимые сокращения:
simb,flajok,digt,s,m. - Невнятное название проекта, папок и файлов:
seva,ConsoleApp3- нужно называть все понятно и по смыслу.
Console.Write(expr);
Console.Write("=");
Console.Write(s);Целесообразно заменить на Console.Write($"{expr}={s}");
- Наличие бинарных файлов в репозитории
bin/Debug/netcoreapp1.1- изменяемые, сгенерированные, скомпилированные файлы не должны хранится в репозитории. Тем более не текстовые.