Ваш код на самом деле выглядит следующим образом:
(long)(int.MaxValue + 1)
Но поскольку .Net framework имеет встроенное неявное преобразование между int и long, вам не нужно явно помещать листинг в ваш код.
Итак, во-первых, эта часть кода выполняется:
int.MaxValue + 1
, и результатом этой операции является значение int
, которое вызывает и исключает переполнение. Таким образом, ваш код даже не имеет возможности начать преобразование из int в long.