Date 在內部存儲為 64 位整數,因此無法直接作為 Double 進行操作。.NET 框架提供了 ToOADate 和 FromOADate 函數以進行 Double 和 Date 之間的轉換。將日期表示為整數形式可以簡化并加速對日期的操作。
升級 向導
升級工具并非能夠檢測到所有使用變量將 Date 存儲為 Double 的情況,但它一般會在將 Double 指定為 Date 的位置插入適當的 ToOADate 或 FromOADate 方法。例如,以下代碼:
Dim dbl As Double Dim dat As Date Dbl = dat 升級后將變為:
Dim dbl As Double Dim dat As Date Dbl = dat.ToOADate
定長字符串 Visual Basic 6.0 除類模塊的 Public 變量之外,其他變量均可以聲明為定長字符串。
Visual Basic.NET
CLR 第一版不支持定長字符串。在后續版本中將添加這一支持功能。
升級 向導
在大多數情況下不會出現問題。假設為定長字符串表現方式,則以下代碼:
Dim MyFixedLengthString As String * 100 升級后將變為:
Dim MyFixedLengthString As New VB6.FixedLengthString(100) 有關該主題的全面說明,請參閱白皮書《準備將 Visual Basic 6.0 應用程序升級到 Visual Basic.NET》(英文)。
Type Visual Basic 6.0 Type 語句用于定義由用戶定義的數據類型。
Visual Basic.NET
Type 和 User-Defined Type 這兩個名稱會引起混淆,因為類、枚舉和接口也是可以由用戶定義的類型。Type 和 User-Defined Type 是從 QuickBasic 遺留下來的,在 QuickBasic 中用戶可以定義的類型只有結構和記錄。CLR 使用 Type 這一名稱廣義地包含所有數據類型。
因此,在 Visual Basic.NET 中 Type 語句將變為 Structure。
升級 向導
將 Type 語句變為 Structure,因此以下代碼:
Type MyType MyVariable As Integer End Type 升級后將變為:
Structure MyType Dim MyVariable As Short End Structure
Sub Test(x As Integer) If x < 0 Then Dim y As Integer = - x '... Else '... End If End Sub 以上示例中的變量 y 僅在聲明該變量的塊中可用;更確切地說,它僅在其聲明至 Else 語句之間可用。如果需要在整個過程中使用變量,則必須在 If/Else/End If 控制結構之外聲明該變量。
運算符優先級 Visual Basic 6.0 邏輯和位的 And、Or、Xor 和 Not 運算符的優先級高于比較運算符。
Visual Basic.NET
And、Or、Xor 和 Not 運算符的優先級低于比較運算符,因此 a > b And a < c 將被認為是 (a > b) And (a < c)。新的 BitAnd、BitOr 和 BitXor 運算符的優先級高于比較運算符,因此 a BitAnd &HFFFF <> 0 將被認為是 ((a BitAnd &HFFFF) <> 0)。