使用场景,使用.Net Core 编写的一段分析和转换字节的代码出现错误:

Description: The process was terminated due to an unhandled exception.
Exception Info: System.OverflowException: Arithmetic operation resulted in an overflow.
   at xxx.Provider.Set(Byte[] frame, InstData instance) in E:\code\xxx\xxx\FramePacketProvider.cs:line 56
   at xxx.Provider.Eval(Byte[] data, InstData& instance) in E:\code\xxx\xxx\FramePacketProvider.cs:line 43
   at xxx.Provider.OnReviceData(Object sender, SerialDataReceivedEventArgs e) in E:\code\xxx\xxx\Provider.cs:line 138
   at RJCP.IO.Ports.SerialPortStream.OnDataReceived(Object sender, SerialDataReceivedEventArgs args)
   at RJCP.IO.Ports.SerialPortStream.HandleEvent(Object state)
   at System.Threading.ThreadPoolWorkQueue.Dispatch()

大致的原因如下:
任何变量声明都会占用内存,具体取决于 int、string、array、float、point 等类型。每个变量都有最大和最小值。当我们赋值超出了这个范围会出现什么情况呢?猜对了,就是上述提示错误。写到这里你就清楚怎么解决问题了。
我把这个错误归纳为两类情况:
(1)ushort 或者uint等无符号类型的变量值接受 short或者int类型的值 。
(2)当保存的值超出储存空间限制时例如 int 做运算时例如加或乘时超出其储存范围。

以上就我的总结。