Ваш код приводит к переполнению для типа данных, с которым вы работаете.
Поведение по умолчанию в VB.NET - проверка арифметических операций, а в C # - не проверка арифметических операций.
Добавьте оператор флажок вокруг кода C #, чтобы увидеть, что он также не работает.
checked {
// do all your work here, any overflow will cause an exception
}
Исправьте ваш код, чтобы остановить переполнение. Как отмечают мои комментарии ниже, арифметическое переполнение не обязательно нужно игнорировать. Здесь вы выполняете операции, которые приводят к вероятным неожиданным результатам, и вы должны явно для этого написать код (увеличив размер шрифта или обработав ошибку).
Абсолютно последнее, что вы должны сделать (IMO), это в свойствах вашего проекта, вкладка «Компиляция», кнопка «Дополнительные параметры компилятора», установить флажок «Удалить проверки целочисленного переполнения». Лично я считаю, что это плохая идея, и лично я использую checked
в C # всякий раз, когда я делаю вещи, которые переполняют мои переменные. Неудача рано, часто неудача и все.