-1

所以我很接近这个代码,但还不是免费的。一旦 For 循环到达单一数据类型的通道,“整数”部分需要更改为“单一”。有没有一种简单的方法可以做到这一点而无需明确编码为“单一”?如果没有,那么我认为我将无法像我正在尝试做的那样循环。我试图在 AppendData IE "Channels(i).AppendData(jaggedArray(i))" 之后省略第一个参数,虽然我在编译时没有收到错误,但在运行代码时确实会引发异常。所以这行不通。它需要数据类型参数,当然还有要附加的数据数组。

For Each c As TdmsChannel In Channels
        Channels(i).AppendData(Of Integer)(jaggedArray(i))
        i += 1
    Next
4

1 回答 1

0

我想到了。实际上有一种通道集合的方法可以用来获取数据类型。我使用该方法来确定如何附加数据(整数、单一或布尔类型)。

Dim dtype As System.Type
    For Each c As TdmsChannel In Channels
        dtype = Channels(i).GetDataType
        If dtype.Name = "Int32" Then
            Channels(i).AppendData(Of Integer)(jaggedarray(i))
        ElseIf dtype.Name = "Single" Then
            Channels(i).AppendData(Of Single)(jaggedarray(i))
        ElseIf dtype.Name = "Boolean" Then
            Channels(i).AppendData(Of Boolean)(jaggedarray(i))
        End If
        i += 1
    Next
于 2016-06-21T20:03:28.087 回答