升級建議:避免使用者定義型別的陣列和固定長度字串
更新: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