Share via


Recomendación de actualización: evitar matrices y cadenas de longitud fija en tipos definidos por el usuario

Actualización: noviembre 2007

Debido a los cambios realizados, que permiten que las matrices y estructuras (antes conocidas como tipos definidos por el usuario) de Visual Basic 2008 sean totalmente compatibles con otros lenguajes de Visual Studio, las cadenas de longitud fija ya no se admiten en el lenguaje. En la mayoría de los casos esto no representa ningún problema, porque existe una clase de compatibilidad que proporciona un comportamiento de cadena de longitud fija, de modo que el código:

Dim FixedLengthString As String * 100

se actualiza a lo siguiente:

Dim FixedLengthString As New VB6.FixedLengthString(100)

Sin embargo, las cadenas de longitud fija provocan un problema cuando se utilizan en estructuras. El problema se produce porque la clase de la cadena de longitud fija no se crea automáticamente cuando se crea la estructura. Del mismo modo, las matrices de tamaño fijo tampoco se crean cuando se crea la estructura.

Al actualizar el código, los tipos definidos por el usuario con cadenas o matrices de longitud fija se convierten en estructuras y se marcan con un comentario que indica que es necesario inicializar la cadena o matriz de longitud fija antes de hacer referencia a la estructura en el código. Sin embargo, es posible protegerse de esta modificación cambiando los tipos definidos por el usuario de Visual Basic 6.0 de modo que utilicen cadenas en lugar de cadenas de longitud fija y matrices no inicializadas en lugar de matrices de tamaño fijo. Por ejemplo:

Private Type uType
    anArray(5) As Integer
    aFixedString As String * 100
End Type
Sub SomeFunction()
    Dim aVariable As uType
End Sub

puede cambiarse a:

Private Type uType
    anArray() As Integer
    aFixedString As String
End Type
Sub SomeFunction()
    Dim aVariable As uType
    ReDim aVariable.anArray(5) As Integer
    aVariable.aFixedString = String$(100, " ")
End Sub

Vea también

Otros recursos

Recomendaciones del lenguaje para la actualización