Sim*_*mon 6 .net c# byte boolean-logic
在C#(3.5)中,我尝试以下方法:
byte byte1 = 0x00;
byte byte2 = 0x00;
byte byte3 = byte1 & byte2;
Run Code Online (Sandbox Code Playgroud)
我得到错误132:"不能隐式地将类型'int'转换为'byte'.存在显式转换(你是否错过了演员?)".|也是如此 和^.
我究竟做错了什么?为什么要问我关于整数?为什么我不能在字节上做布尔逻辑?
Jon*_*eet 12
未声明各种运算符byte
- 两个操作数都被提升为int
,结果是int
.例如,添加:
byte byte1 = 0x00;
byte byte2 = 0x00;
byte byte3 = byte1 + byte2; // Compilation error
Run Code Online (Sandbox Code Playgroud)
请注意,复合赋值确实有效:
byte1 += byte2;
Run Code Online (Sandbox Code Playgroud)
最近有一个SO问题.我同意这对于按位操作特别令人厌烦,但结果应始终是相同的大小,并且它是逻辑上完全有效的操作.
作为解决方法,您可以将结果转换回字节:
byte byte3 = (byte) (byte1 & byte2);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2344 次 |
最近记录: |