Изменить параметр типа в цикле For?

Так что я близок с этим кодом, но пока не свободен. Часть "Of Integer" должна измениться на "Of Single", как только цикл For Loop попадет в канал с типом данных Single. Есть ли простой способ сделать это без явного кодирования "Of Single"? Если нет, то я не думаю, что смогу пройти через это, как я пытаюсь. Я попытался просто пропустить первый параметр после IE "AppendData"Channels(i).AppendData(jaggedArray(i))", и хотя я не получаю ошибку при компиляции, он выдает исключение при запуске кода. Так что это не работает. Требуется параметр типа данных и, конечно, массив данных, который необходимо добавить.

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

1 ответ

Я понял. На самом деле был метод для коллекций каналов, который можно использовать для получения типа данных. Я использовал этот метод, чтобы определить, как добавлять данные (типа Integer, Of ​​Single или Boolean).

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
Другие вопросы по тегам