0

我正在尝试将字节数组复制到第三方库中的类中

    Dim usr As New RSI_USER_RECORD
    Dim ba(RSI_USER_RECORD.RSI_LEN_USER_REC - 1) As Byte
    'populate ba here
    usr = ba 'how can I do this?

这甚至可能吗?

这是类的定义(来自Reflector)

Public Class RSI_USER_RECORD
    ' Methods
    Public Function Clone() As RSI_USER_RECORD
        Return New RSI_USER_RECORD With { _
            .pID = Me.pID.Clone, _
            .pTemplateVector = Me.pTemplateVector.Clone, _
            .authorityLevel = Me.authorityLevel, _
            .rejectThreshold = Me.rejectThreshold, _
            .timeZone = Me.timeZone _
        }
    End Function


    ' Fields
    Public authorityLevel As RSI_AUTHORITY_LEVEL = RSI_AUTHORITY_LEVEL.RSI_AUTHORITY_NONE
    Public pID As RSI_ID = New RSI_ID
    Public pTemplateVector As RSI_TEMPLATE = New RSI_TEMPLATE
    Public rejectThreshold As UInt16 = 0
    Public Const RSI_LEN_USER_REC As Integer ModOpt(IsConst) = &H10
    Public timeZone As Byte = 0
End Class
4

2 回答 2

0
    Dim usr As  USER_RECORD() ' init the values
    Dim ba As  USER_RECORD() = New  USER_RECORD(usr.Length - 1) {}

    For i As Integer = 0 To usr.Length - 1
        ba(i) = usr(i) ' if USER_RECORD is value type
       'ba(i) = DirectCast( usr(i).Clone(), USER_RECORD) ' if USER_RECORD is reference type

    Next
于 2012-05-25T14:04:23.260 回答
0

字节数组中的每个数据都必须分配给其中一个属性。基本上你将不得不做类似的事情

authorityLevel = byte(someIndex)
pID = byte(someIndex)
pTemplateVector = byte(someIndex)
rejectThreshold = byte(someIndex)
timeZone =byte(someIndex)

在您的代码中:

Dim usr As New RSI_USER_RECORD
Dim ba(RSI_USER_RECORD.RSI_LEN_USER_REC - 1) As Byte
'populate ba here
usr = ba 'how can I do this?

您不能在对象中分配数组,但可以使用数组来初始化对象。喜欢

dim anInstance as new RSI_USER_RECORD(ba)

并创建一个新的构造函数来完成这项工作。

于 2012-05-25T15:59:51.973 回答