Java 如何在VB.NET中写入(字节)0xFF

Java 如何在VB.NET中写入(字节)0xFF,java,vb.net,porting,Java,Vb.net,Porting,我有一个小项目,需要创建一个静态字节数组 我用Java代码创建了一个固定的字节数组,如下所示 private static final byte[][] P = new byte[][] { // p0 { (byte) 0xA9, (byte) 0x67, (byte) 0xB3, (byte) 0xE8, (byte) 0x04, (byte) 0xFD, (byte) 0xA3, (byte) 0x76 }, // p1

我有一个小项目,需要创建一个静态字节数组

我用Java代码创建了一个固定的字节数组,如下所示

private static final byte[][] P = new byte[][] {

    // p0
    {
        (byte) 0xA9, (byte) 0x67, (byte) 0xB3, (byte) 0xE8,
        (byte) 0x04, (byte) 0xFD, (byte) 0xA3, (byte) 0x76
    },

    // p1
    {
        (byte) 0x75, (byte) 0xF3, (byte) 0xC6, (byte) 0xF4,
        (byte) 0xDB, (byte) 0x7B, (byte) 0xFB, (byte) 0xC8}
    }
如何在VB.NET中编写它?

使用

Dim P(,) As Byte = New Byte(,) { _
    { &HA9, &H67, ... }, _
    { &H75, &HF3, ... }, _
    ... _
}

Java中的
byte
类型是有符号类型,而VB.NET中的
byte
类型是无符号类型。对于VB,您需要使用
SByte
类型。此外,您的问题显示的是数组的数组,而不是二维数组,因此VB.NET中最接近的等价物是:

Private Shared ReadOnly P()() As SByte = _ 
    { _
    New SByte() { CSByte(&HA9), CSByte(&H67), CSByte(&HB3), CSByte(&HE8), CSByte(&H4), CSByte(&HFD), CSByte(&HA3), CSByte(&H76) }, _
    New SByte() { CSByte(&H75), CSByte(&HF3), CSByte(&HC6), CSByte(&HF4), CSByte(&HDB), CSByte(&H7B), CSByte(&HFB), CSByte(&HC8) } _
    }

值得一提的是,VB.NET没有明确的方法来编写字节文字。您所能做的最好的事情就是使用一个足够小的整数文本,正如您所展示的,并相信它会正确地转换为字节。我想如果你想显式,你可以说
CByte(&HA9)
,但这不是必须的。这是真的-Java也是如此,因此
(byte)
强制转换。幸运的是,在此上下文中,VB编译器知道范围限制,如果其中一个常量太大而无法放入
字节中,它会很高兴地发出警告。