Recomendação de atualização: Usar matrizes ligados a zero
O Visual Basic 6.0 permite-lhe definir matrizes com limites superiores e inferiores com qualquer número inteiro.Você também pode usar ReDim para retribuir uma variante sistema autônomo uma matriz. Para habilitar a interoperabilidade com outras linguagens, arrays em Visual Basic 2008 deve ter um limite inferior zero, e ReDim não pode ser usado a menos que a matriz variável tenha sido declarada previamente com o Dim palavra-chave. Embora isso restrinja a maneira arrays podem ser definidas, ela permite que seja possível passar matrizes entre o Visual Basic 2008 e qualquer Outros .NET Framework linguagem. O exemplo a seguir mostra a restrição:
'BAD: LBound must be 0
Dim a(1 To 10) As Integer
'BAD: Can't use ReDim without Dim
ReDim v(10)
'OK: Creates an array of 11 integers
Dim b(10) As Integer
'OK: Can ReDim previously Dimed variable
ReDim b(5) As Integer
Um efeito colateral é que o Option Base demonstrativo é removida da linguagem.
Quando seu projeto é atualizado para Visual Basic 2008, qualquer instrução option base é removidas do seu código. Se a matriz é limite zero, ela é deixada inalterada.Entretanto, se não for uma limite zero, o limite inferior é removido e um aviso é inserido no código, como no exemplo a seguir:
Dim a(1 To 10) As Integer
Alterações em:
' UPGRADE_WARNING: Lower bound of an array was changed from 1 to 0.
Dim a(10) As Integer
Em muitos casos, o código atualizado funcionará como que era antes.Entretanto, se sua lógica aplicativo depende o limite inferior sendo 1, você precisará fazer algumas modificações.Dim, ReDim, e LBound instruções são marcadas com avisos para ajudar você a revisar as alterações.
Por esse motivo, deve usar matrizes com limite zero em seu código Visual Basic 6.0, evite usar ReDim declaração de uma matriz e evite usar Option Base 1.