传递参数时无法将Form1.Data类型的值转换为Form1.Data()

时间:2019-03-22 11:59:55

标签: vb.net

在程序开始时,我定义了一个新的公共结构“数据”:

Public Structure Data
        Dim car, grid, points As String
        Dim driver, team, fastestlap, racetime As String
End Structure

然后我获得了用户输入的数据,并将其添加到数据类型为“ Data”的数组displayData(5)。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        Dim displayData(5) As Data
        Dim accepted As Boolean = False
        Dim temp As String
        Dim tempNum As Integer
        Dim output As String = ""
        Dim arraysize As Integer = 0

        For x = 0 To 5

            displayData(x).driver = InputBox("Please enter the name of driver number " & x + 1)

            temp = InputBox("Please enter the car number of driver number " & x + 1)

            While accepted = False
                If IsNumeric(temp) Then
                    accepted = True
                    displayData(x).car = temp
                Else
                    accepted = False
                    temp = InputBox("Error: integer not entered. Please enter the car number of driver number " & x + 1)
                End If
            End While

            accepted = False

            displayData(x).team = InputBox("Please enter the team name of driver number " & x + 1)

            temp = InputBox("Please enter the grid number of driver number " & x + 1)
            tempNum = Convert.ToInt32(temp)

            While accepted = False
                If IsNumeric(tempNum) Then
                    accepted = True
                    displayData(x).grid = temp
                Else
                    accepted = False
                    temp = InputBox("Error: integer not entered. Please enter the grid number of driver number " & x + 1)
                    tempNum = Convert.ToInt32(temp)
                End If
            End While

            accepted = False

            displayData(x).fastestlap = InputBox("Please enter the fastest lap of driver number " & x + 1)
            displayData(x).racetime = InputBox("Please enter the race time of driver number " & x + 1)

            temp = InputBox("Please enter the points of driver number " & x + 1)

            While accepted = False
                If IsNumeric(temp) Then
                    accepted = True
                    displayData(x).points = temp
                Else
                    accepted = False
                    temp = InputBox("Error: integer not entered. Please enter the points of driver number " & x + 1)
                End If
            End While

            accepted = False

            output = output & displayData(x).driver & "," & displayData(x).car & "," & displayData(x).team & "," & displayData(x).grid & "," & displayData(x).fastestlap & "," & displayData(x).racetime & "," & displayData(x).points & vbCrLf


        Next

        Dim filename As String = "U:\Subjects\Computing\AH Computing\Project Files\Leaderboard.csv"
        My.Computer.FileSystem.WriteAllText(filename, output, True)

        bubbleSort(arraysize, displayData(6))

    End Sub

以上是我代码的主要内容。我在将displayData(6)键入Bubblesort时出错,该错误在这里定义:

Public Sub bubbleSort(ByVal arraysize As Integer, ByVal displayData() As Data)

        Dim counter As Integer
        Dim outerloop As Integer

        For outerloop = (arraysize - 2) To 0 Step -1
            For counter = 0 To outerloop
                If displayData(counter).racetime > displayData(counter + 1).racetime Then
                    swap(displayData(counter).racetime, displayData(counter + 1).racetime)
                    swap(displayData(counter).car, displayData(counter + 1).car)
                    swap(displayData(counter).driver, displayData(counter + 1).driver)
                    swap(displayData(counter).points, displayData(counter + 1).points)
                    swap(displayData(counter).team, displayData(counter + 1).team)
                    swap(displayData(counter).fastestlap, displayData(counter + 1).fastestlap)
                    swap(displayData(counter).grid, displayData(counter + 1).grid)
                End If
            Next
        Next

    End Sub

显然,我需要更多常规文本才能保存此内容。冒泡排序使用了我在程序的另一部分中定义的交换算法,但它非常简单,并且不是导致错误的100%,因此将其包括在内似乎没有效果。

0 个答案:

没有答案