1已经从Visual Basic.NET中
删除了。
当你的代码升级到Visual Basic.NET后,以0为下界的数组不会
改变。如果数组下界非0的话,数组会升级到一个兼容类,如下:
Dim a(1 To 10) As Integer
改变为:
Dim a As Object = New VB6.Array(GetType(Short), 1,10)
兼容数组类比本地数组操作起来要慢很多,同时在程序中使用它
也有限制。例如你不能将一个兼容数组类作为参数传递到一个以数组作为参数的函数,你也不能传递一个兼容类到Visual C#或者Visual C++类中。
基于以上原因,你需要在你的Visual Basic 6.0代码中使用以0
为下界的数组,避免使用ReDim定义数组,避免使用Option Base 1语句。
使用VB常量而不要使用它们所代表的值在写代码的时候,尽量使用VB常量而不要使用它们所代表的值。例如你要在运行时将一个窗口最大化,使用:
Me.WindowState = vbMaximized 'Good: Constant name
而不要使用:
Me.WindowStyle = 2 'Bad: Underlying value
Me.WindowStyle = X 'Bad: Variable
在Visual Basic.NET中,一些属性和常量的数值发生了改变;例
如True的值由-1变为了1。在你的代码升级到Visual Basic.NET后,大部分的常量会自动更改;然而如果你使用的是常量代表的数值而不是常量名,那么你就要做大量的手工更改工作。
用户自定义数据类型中的数组和固定长度字符串
为了使Visual Basic.NET数组和数据结构完全兼容Visual
Studio.NET,固定长度字符串在新语言中不再被支持。在大多数情况下者不是问题,因为Visual Basic.NET提供了兼容固定长度字符串定义的类,那么代码:
Dim MyFixedLengthString As String * 100
升级后会变成这样:
Dim MyFixedLengthString As New VB6.FixedLengthString(100)
然而,在数据结构(例如用户自定义数据)中使用固定长度字符
串类可能产生错误。因为在用户自定义数据结构建立时类不会被建立。用户自定义数据中的固定长度数组也会产生同样的问题。
当你的代码升级后,在代码中的用户自定义数据类型中如果有固
定长度的数组和字符串的话,在定义位置会添加注释提醒你在使用用户自定义数据类型前首先对字符串或者数组进行初始化。然而,你可以在你的Visual Basic 6.0的用户自定义类型中将固定长度的字符串定义改变为字符串定义,将固定长度数组定义改变为未初始化数组来
避免升级产生后产生上面的问题。例如:
Private Type MyType
MyArray(5) As Integer
MyFixedString As String * 100
End Type
Sub Bar()
Dim MyVariable As MyType
End Sub
升级后会变为:
Private Type MyType
MyArray() As Integer
MyFixedString As String
End Type
Sub Bar()
Dim MyVariable As MyType
ReDim MyVariable.MyArray(5) As Integer
MyVariable.MyFixedString = String$(100, " ")
End Sub
Avoid Legacy Features
避免使用从原始Basic继承的特性,如下的关键字在新版本语言中将
不再出现:
Def
Computed GoTo/GoSub
GoSub/Return
Option Base 0
关键词:vb.Net编程简介之3(轉)