Александр Asked:2020-10-03 17:18:04 +0000 UTC2020-10-03 17:18:04 +0000 UTC 2020-10-03 17:18:04 +0000 UTC 为什么不能在 C# 中添加字节 + 字节? 772 我知道您需要执行类型转换,但我想了解其中的机制。 为什么这段代码会抛出错误? byte a = 2; byte b = a + 2; // ошибка c# 1 个回答 Voted Best Answer DreamChild 2020-10-03T17:24:49Z2020-10-03T17:24:49Z 事实是带有字节的操作作为结果返回int。乍一看并不完全明显,但它是有道理的。事实是byte- 是一个相当小的值(从 0 到 255),并且在许多情况下,由于对两个字节变量进行算术运算,会发生溢出,因此结果不适合类型变量byte. 这显然不是一种非常预期的行为(例如,将 200 和 60 相加不会产生 260,正如人们所期望的那样,而是 4),因此决定byte + byte = int
事实是带有字节的操作作为结果返回
int。乍一看并不完全明显,但它是有道理的。事实是byte- 是一个相当小的值(从 0 到 255),并且在许多情况下,由于对两个字节变量进行算术运算,会发生溢出,因此结果不适合类型变量byte. 这显然不是一种非常预期的行为(例如,将 200 和 60 相加不会产生 260,正如人们所期望的那样,而是 4),因此决定byte + byte = int