An int
(aka System.Int32
within the runtime) is always a signed 32 bit integer on any platform, a long
(aka System.Int64
) is always a signed 64 bit integer on any platform. So you can’t cast from a long
with a value above Int32.MaxValue
or below Int32.MinValue
without losing data.