Это потому, что по умолчанию C # не генерирует никаких исключений для целочисленного переполнения, а также для переполнения. Здесь можно сделать несколько вещей.
Вариант 1
Вы должны включить исключение, перейдя в
Project => properties => вкладка Build => Advanced => проверка на арифметическое переполнение (убедитесь, что вы отметили опцию)
![enter image description here](https://i.stack.imgur.com/OkAF8.png)
Убедитесь, что вы отметили опцию
Вариант 2
Используйте проверенный блок и создайте исключение переполнения для обработки ситуации. Пример кода:
try
{
checked
{
int y = 1000000000;
short x = (short)y;
}
}
catch (OverflowException ex)
{
MessageBox.Show("Overflow");
}
catch (Exception ex)
{
MessageBox.Show("Error");
}
Надеюсь, это поможет вам ...:)