将GetBytes C#行转换为VB.Net

时间:2012-09-17 18:11:14

标签: c# .net vb.net

我有一行用C#编写的代码,我需要转换为Vb.Net。

在C#中

我有这个块...

// Calculate number of 64K blocks
  uint          rowsPerBlock = _MAXBLOCK/widthLength;
  uint          blockSize = rowsPerBlock*widthLength;
  uint          blockCount;
  ushort        length;
  uint          remainder=dcSize;

稍后为长度变量分配一个值并用于其他计算

length = (ushort)((remainder < blockSize) ? remainder : blockSize);

    if (length == remainder)
    {
      comp.WriteByte(0x01);
    }
    else
    {
      comp.WriteByte(0x00);
    }

    comp.Write(BitConverter.GetBytes(length), 0, 2);

    // Write one's compliment of LEN

以上所有我已转换,但以下行除外。

comp.Write(BitConverter.GetBytes((ushort)~length), 0, 2);

这条线的正确转换是什么?

谢谢

2 个答案:

答案 0 :(得分:5)

这将使用VB.Net中的Not来执行按位否定:

comp.Write(BitConverter.GetBytes(CUShort(Not length)), 0, 2)

答案 1 :(得分:1)

您可以尝试使用此代码

Dim byteArray As Byte( ) = BitConverter.GetBytes( (CUShort)Not length)
comp.Write(byteArray , 0, 2);

Link BitConverter.GetBytes:http://msdn.microsoft.com/fr-fr/library/vstudio/fk3sts66.aspx#Y0

链接不是:http://msdn.microsoft.com/fr-fr/library/2cwcswt4%28v=vs.80%29.aspx