- Некорректная обработка чисел больше размерности
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
- изменяемые, сгенерированные, скомпилированные файлы не должны хранится в репозитории. Тем более не текстовые.