【问题标题】:Change the Type Parameter in a For Loop?更改 For 循环中的类型参数?
【发布时间】:2016-10-23 10:31:35
【问题描述】:

因此,我已接近此代码,但尚未免费回家。一旦 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

【问题讨论】:

  • 首先,为什么不编码Of Single?还有 jaggedArray(i) 的类型是什么?
  • jaggedArray(i) 可以是 Integer 或 Single 类型。在 JaggedArray() 中可以有 4 到 13 个 Single 或 Integer 数组。 JaggedArray 是一个数组数组。
  • 哦,是的,我忘了 Jagged 数组中也可能有布尔数组。
  • 你有TdmsChannel的代码吗? IE。可以修改吗?
  • 不,我不能修改它。

标签: vb.net types type-conversion measurement-studio


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 2016-04-09
    相关资源
    最近更新 更多