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までの範囲であるため、正常に動作しますSystem.Byte
。.NETは0から254までの範囲です。この制限により、C#バージョンの出力はアプリケーションの特徴は、予想どおり、255の代わりにバッファに254のセットが含まれていることです。
誰かが私に実行可能な代替案を教えてもらえますか?
よろしくお願いします。