0
Public Class Population

 Dim tours() As Tour    ' Tour is a class and I have to make and object array

 Public Sub New(ByVal populationSize As Integer, ByVal initialise As Boolean)

    Dim tours As New Tour(populationSize)   ' 

    If initialise Then
        ' Loop and create individuals
        For i As Integer = 0 To (populationSize - 1)
            Dim newTour As New Tour()
            newTour.generateIndividual()
            saveTour(i, newTour)
        Next i
    End If
End Sub

Public Sub saveTour(ByVal index As Integer, ByVal tour As Tour)
    tours(index) = tour           ' getting error in this line 
End Sub

Javaの同じコードはこのリンクにあります

4

2 に答える 2

2

私がVBをやったDIMのは久しぶりですが、 -method のステートメントは、グローバル変数を隠すNew新しいローカル変数を作成すると思います。tourstours

これを試して:

Public Class Population

 Dim tours() As Tour

 Public Sub New(ByVal populationSize As Integer, ByVal initialise As Boolean)

    tours = New Tour(populationSize)   ' 

    If initialise Then
        ' Loop and create individuals
        For i As Integer = 0 To (populationSize - 1)
            Dim newTour As New Tour()
            newTour.generateIndividual()
            saveTour(i, newTour)
        Next i
    End If
End Sub

Public Sub saveTour(ByVal index As Integer, ByVal tour As Tour)
    tours(index) = tour 
End Sub
于 2013-02-23T12:29:32.463 に答える
1

試す、

Public Sub New(ByVal populationSize As Integer, ByVal initialise As Boolean)

    ReDim tours(populationSize)

    If initialise Then
        ' Loop and create individuals
        For i As Integer = 0 To (populationSize - 1)
            Dim newTour As New Tour()
            newTour.generateIndividual()
            saveTour(i, newTour)
        Next i
    End If
End Sub
于 2013-02-23T12:53:47.047 に答える