在将 Java 应用程序转换为 C# 时,我遇到了一段奇怪且非常烦人的代码,这很重要并且在原始版本中有效。
byte[] buf = new byte[length];
byte[] buf2 = bout.toByteArray();
System.arraycopy(buf2, 0, buf, 0, buf2.length);;
for (int i = (int) offset; i < (int) length; ++i) {
buf[i] = (byte) 255;
}
导致转换错误的部分是buf[i]
字节 255 的设置:而在 Java 中它工作正常,因为java.lang.Byte
跨度从 0 到 255,.NETSystem.Byte
跨度从 0 到 254。由于这个限制,C# 版本中的输出应用程序的关键在于,缓冲区包含一组 254,而不是预期的 255。
谁能给我一个可行的选择?
非常感谢您的支持。