sbyte formatInformationValue = (sbyte)(ec << 3 | maskNumber);
ec是int
maskNumber是 sbyte
出现一个警告:
在经符号扩展的操作数上使用了按位“或”运算符;请考虑首先强制转换为较小的无符号类型
请教这是为什么?
类型不匹配,编译器给的警告,按照警告的提示结合你的需求修改即可。
数据类型的问题,这样试试:
sbyte formatInformationValue = (sbyte)((uint)ec << 3 | maskNumber);
试过了不行,还是有警告。至少我这里(.net framework 4.5.1)试了不行。