Microsoft Visual Basic
在設計 Visual Basic
在發布這些功能的同時
有關從 Visual Basic
語言
Variant
Visual Basic
Variant 是一種特殊的
Visual Basic
公共語言運行時 (CLR) 使用 Object 作為通用數據類型
升級向導
將 Variant 數據類型變為 Object
Dim x As Variant
升級後將變為
Integer 和 Long
Visual Basic
Long 變量存儲為帶有符號的
Visual Basic
Long 變量存儲為帶有符號的
由於部分
升級向導
修改變量的類型
Dim x As IntegerDim y As Long
升級後將變為
Dim x As ShortDim y As Integer
Currency
Visual Basic
Visual Basic
Currency 變量以整數格式存儲為
Decimal 變量存儲為帶有符號的
Visual Basic
Currency 數據類型的精度不夠
升級向導
將 Currency 數據類型轉換為 Decimal
Dim x As Currency
升級後將變為
Dim x As Decimal
Date
Visual Basic
Date 變量在內部以 Double 格式存儲
Date 變量存儲為 IEEE
當其他數字類型轉換為 Date 時
Visual Basic
Date 在內部存儲為
升級向導
升級工具並非能夠檢測到所有使用變量將 Date 存儲為 Double 的情況
Dim dbl As Double Dim dat As Date Dbl = dat
升級後將變為
Dim dbl As Double Dim dat As Date Dbl = dat
定長字符串
Visual Basic
除類模塊的 Public 變量之外
Visual Basic
CLR 第一版不支持定長字符串
升級向導
在大多數情況下不會出現問題
Dim MyFixedLengthString As String *
升級後將變為
Dim MyFixedLengthString As New VB
有關該主題的全面說明
Type
Visual Basic
Type 語句用於定義由用戶定義的數據類型
Visual Basic
Type 和 User
因此
升級向導
將 Type 語句變為 Structure
Type MyType MyVariable As Integer End Type
升級後將變為
Structure MyType Dim MyVariable As Short End Structure
用戶定義類型存儲
Visual Basic
用戶定義的數據類型可以包含某種數據類型
Visual Basic
格式是最有效的
升級向導
在所有需要添加封送處理屬性的位置
True
Visual Basic
True 的值為
Visual Basic
True 的值為
鑒於語言的協同操作
升級向導
如果將布爾值強制轉換為非布爾值
Dim MyBoolean As BooleanDim MyInteger As Integer MyInteger = MyBoolean
升級後將變為
Dim MyBoolean As BooleanDim MyInteger As Short
Empty
Visual Basic
變量均初始化為 Empty
Visual Basic
對象變量均初始化為 Nothing
升級向導
Null 和 Null 傳播
Visual Basic
Null 值為 Variant 的子類型
Visual Basic
不支持 Null 傳播
Visual Basic
升級向導
Null 值和 IsNull 函數標記有升級警告注釋
If x Is Null Then MsgBox
升級後將變為
Def<Type>
Visual Basic
DefBool
Visual Basic
避免使用隱式類型聲明
升級向導
將變量類型的顯式聲明插入代碼
DefStr a
Sub MySub
s =
End Sub
升級後將變為
Sub MySub
Dim s As String
s =
End Sub
塊內的局部變量
Visual Basic
從包含聲明的行至過程結束的范圍內
Visual Basic
Visual Basic
Sub Test(x As Integer)
If x <
Dim y As Integer =
Else
End If
End Sub
以上示例中的變量 y 僅在聲明該變量的塊中可用
變量的塊范圍是許多結構語言共有的功能
升級向導
如果變量在塊內聲明
If x =
Dim y As Integer
End If
升級後將變為
Dim y As Integer
If x =
End If
新的自動重新實例化
Visual Basic
窗體的類變量聲明 Dim x As New <classname> 將導致編譯器每次引用 x 時生成代碼
Dim x As New MyClass
Call x
等同於
Dim x As MyClass
If x Is Nothing Then
Set x = New MyClass
End If
Call x
即使變量已經設置為 Nothing
Visual Basic
窗體的變量聲明 Dim x As New <classname> 等同於 Dim x As <classname> = New <classname>
Visual Basic
升級向導
這極少會成為問題
Dim x As New MyClass
x = Nothing
x = New MyClass
對象終結
Visual Basic
COM 引用計數機制用於垃圾回收對象實例
Visual Basic
跟蹤垃圾回收器從存儲在堆棧變量
在某些情況下
跟蹤垃圾回收器能夠正確釋放引用循環中的對象
升級向導
在大多數情況下
數組
Visual Basic
數組可以由任何整數數字的上下限限定
Visual Basic
為了與其他語言協同操作
升級向導
ReDim
Visual Basic
Visual Basic
Visual Basic
ReDim 語句僅用於為數組分配或重新分配空間
升級向導
如果 ReDim() 用於聲明數組
賦值
Visual Basic
賦值形式有兩種
Visual Basic
僅有一種賦值形式
升級向導
刪除 Set 和 Let 語句
有關該主題的全面說明
And
Visual Basic
And
Visual Basic
And
升級向導
如果 And/Or 語句是非布爾型或者包含函數
有關該主題的全面說明
運算符優先級
From:http://tw.wingwit.com/Article/program/net/201311/12188.html