升级建议:在用户定义类型中避免使用数组和定长串

更新:2007 年 11 月

由于所做的更改使 Visual Basic 2008 数组和结构(以前称为用户定义的类型)同其他 Visual Studio 语言完全兼容,因此该语言中不再支持定长串。多数情况下这不会出错,因为存在提供定长串性能的兼容类,因此代码:

Dim FixedLengthString As String * 100

将升级为以下代码:

Dim FixedLengthString As New VB6.FixedLengthString(100)

但是,在结构中使用了定长串时确实会发生问题。问题的出现是由于创建结构时不会自动创建定长串类。同样,创建结构时也不会创建固定大小数组。

将代码升级时,会将具有定长串或固定大小数组的用户定义类型转换为结构,并用注释进行标记,通知您在引用代码中的结构之前要初始化定长串或固定大小数组。但如果将 Visual Basic 6.0 用户定义类型更改为使用字符串而非定长串,并使用未初始化数组而非固定大小数组,则可以免于进行这种修改。例如:

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

可更改为:

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

请参见

其他资源

有关升级的语言建议