Согласно documentationint.MaxValue
является полем int. Когда яКомпилятор реагирует по-разному при присвоении переменной int.MaxValue переменной
int a = int.MaxValue;
int b = a + 1;
b
имеет значение int.MinValue
, как ожидалось. Но когда я
int a = int.MaxValue + 1;
Я получаю ошибку компиляции
Операция перетекает во время компиляции в зарегистрированном режиме
Почему есть разница?
Не знаю, почему это происходит, просто хочу упомянуть, что это ожидаемое поведение при выполнении в ['checked'] (https://msdn.microsoft.com/en-us/library/74b4xzyw.aspx) block –
'int a = unchecked (int.MaxValue + 1);' –