我在下面的表达式中忽略了什么?Int64 类型的范围不是比 Int16 大吗?
Int64 value = (Int64)(System.Data.SqlTypes.SqlInt16.MaxValue+1);
System.Data.SqlTypes.SqlInt16.MaxValue 是 32767。Int64.MaxValue() 是 9223372036854775807。
32767 + 1 = 32768。这比 9223372036854775807 低很多(!)。
那么为什么我在施放时会得到 Aritmethic 溢出
(Int64)(System.Data.SqlTypes.SqlInt16.MaxValue+1);
到 Int64?
(这与 C# 中 + 运算符的实现有关还是...?)