【发布时间】:2009-06-18 09:20:47
【问题描述】:
在 C# (3.5) 中,我尝试以下操作:
byte byte1 = 0x00;
byte byte2 = 0x00;
byte byte3 = byte1 & byte2;
我收到错误 132:“无法将类型 'int' 隐式转换为 'byte'。存在显式转换(您是否缺少强制转换?)”。 | 也会发生同样的情况和^。
我做错了什么?为什么它问我整数?为什么我不能对字节做布尔逻辑?
【问题讨论】:
-
.NET 中的所有算术都基于 int。有一个相关的问题进行了相当多的讨论。这不是您问题的答案,但您可能会对 C# 如何处理一般算术有所了解:stackoverflow.com/questions/941584/byte-byte-int-why
-
“因为 C# 不是一门完美的语言”,我将如何解释这一点。这是它的缺点之一(与其他语言相比,C# 的缺点是迄今为止最少且影响最小的......)
标签: c# .net byte boolean-logic