VB.NET中的字节数组数组

6

我需要一个数组,其中每个项目都是像这样的字节数组,但我不确定如何实现:

Dim xx as array

xx(0) *as byte* = {&H12, &HFF}

xx(1) *as byte* = {&H45, &HFE}

4
注意,这几乎总是一个不好的想法。字节数组有其用处,但当你开始考虑一个字节数组的数组时,你应该真正考虑一下一个_字节数组集合_。使用像 List<Byte()> 这样的东西。 - Joel Coehoorn
3个回答

11

你可以像这样创建一个嵌套或“不规则”的字节数组:

Dim myBytes(6)() As Byte

这将创建一个包含 6 个字节数组的空数组。外部数组中的每个元素在分配数组之前都将是 Nothing,例如:

 myBytes(0) = New Byte() { &H12, &Hff }

不过,更好的做法可能是创建一个字节数组的List,像这样:

Dim myBytes As New List(Of Byte())

这将创建一个空的字节数组列表,直到您放入一些字节数组才会有内容,就像这样:

myBytes.Add(New Byte() { &H12, &Hff })
与嵌套数组不同,List(Of Byte())会自动扩展以容纳您放入其中的任意数量的字节数组。
要获取更具体的建议,请告诉我们您想要做什么。

2
请参考此MSDN主题以获取更多详细信息。
以下是定义多维数组的代码:
Dim lotsaBytes(2,4) As Byte

并进行初始化:

Dim lotsaBytes(,) As Byte = New Byte(2, 4) {{1, 2}, {3, 4}, {5, 6}, {7, 8}}

0

你可以通过以下VB.NET示例解决你的问题。只需拖放一个按钮和一个文本框即可。代码将在按钮点击事件内部如下:

Private Sub btnCalcBcc_Click(sender As System.Object, e As System.EventArgs) Handles btnCalcBcc.Click
        Dim BCC As Int16
        Dim Bcc2 As Int16
        Dim arr() As Byte = {&H1B, &H58, &H41, &H42, &H43, &H44, &H45, &H46, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H0, &H17, &H0, &H0, &H0, &H0}

        For i As Integer = 0 To arr.Length - 1
            BCC = BCC Xor arr(i)
            BCC = BCC << 1
            Bcc2 = (BCC >> 8)
            Bcc2 = Bcc2 And &H1
            BCC = BCC + Bcc2
        Next
        txtBCC.Text = BCC
End Sub

3
在 Stack Overflow 上让人们公开地给您反馈,这样每个人都可以受益,比私下通过电子邮件向您提供反馈更好。 - Peter Hosey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接