程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb變量、常數和數據類型及過程概述(五)

vb變量、常數和數據類型及過程概述(五)

編輯:VB6

Object 數據類型
Object 變量作為 32 位(4 個字節)地址來存儲,該地址可引用應用程序中或某些其它應用程序中的對象。可以隨後(用 Set 語句)指定一個被聲明為 Object 的變量去引用應用程序所識別的任何實際對象。
Dim objDb As Object
Set objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")
在聲明對象變量時,請試用特定的類,而不用一般的 Object(例如用 TextBox而不用 Control,或者像上面的例子那樣,用 Database 取代 Object)。運行應用程序之前,Visual Basic 可以決定引用特定類型對象的屬性和方法。因此,應用程序在運行時速度會更快。在“對象浏覽器”中列舉了特定的類。
當使用其它應用程序的對象,並在“對象浏覽器”中的“類”列表中列舉對象時,不要用 Variant 或一般的 Object,而應聲明對象。這樣可確保 VisualBasic 能夠識別引用的特定類型對象,在運行時解決引用問題。
詳細信息 關於創建和指定對象以及對象變量的更詳細信息,請參閱本章後面的“創建對象”部分。

轉換數據類型
Visual Basic 提供了幾種轉換函數,可用來將值轉換成特定數據類型。例如,用 CCur 函數將值轉換成 Currency 類型: PayPerWeek = CCur (hours * hourlyPay)

注意 對目標數據類型,傳遞到轉換函數的值必須是有效的,否則會發生錯誤。例如,如果想把 Long 型數轉換成 Integer 型數,那麼,Long 型數必須在 Integer 數據類型的有效范圍之內。
詳細信息 在聯機幫助中查找指定的轉換函數。

Variant 數據類型
Variant 變量能夠存儲所有系統定義類型的數據。如果把它們賦予 Variant 變量,則不必在這些數據的類型間進行轉換; Visual Basic 會自動完成任何必要的轉換。例如:
Dim SomeValue '缺省為 Variant。
SomeValue = "17" 'SomeValue包含 "17"(雙字符的串)。
SomeValue = SomeValue - 15 '現在, SomeValue 包含數值 2。
SomeValue = "U" & SomeValue '現在, SomeValue 包含 "U2" (雙字符的串)。
不必過多關注 Variant 變量中數據的類型就可對 Variant 變量進行操作,但須避免落入陷阱。
1.如果對 Variant 變量進行數學運算或函數運算,則 Variant 必包含某個數。更詳細的信息,請參閱《聯機手冊》中“高級變量主題”中的“變量中存儲的 Numeric 值”部分。
2.如果正在連接兩個字符串,則用 " & " 操作符而不用 " + " 操作符。更詳細的信息,請參閱《聯機手冊》中“高級變量主題”中的“Variant 變量中存儲的 Strings”部分。
除了可以像其它標准數據類型一樣操作外,Variants 還包含三種特定值:Empty,Null 和 Error。

Empty 值
有時需要知道是否已將一個值賦予所創建的變量。在賦值之前,Variant 變量具有值 Empty。值 Empty 是異於0、零長度字符串 ("") 或 Null 值的特定值。可用 IsEmpty 函數測試 Empty 值:
If IsEmpty (Z) Then Z = 0
當 Variant 變量包含 Empty 值時,可在表達式中使用它;將其作為 0 或零長度字符串來處理,這要根據表達式來定。
只要將任何值(包括 0、零長度字符串或 Null)賦予 Variant 變量,Empty 值就會消失。而將關鍵字 Empty 賦予 Variant 變量,就可將 Variant 變量恢復為 Empty。

Null 值
Variant 數據類型還可包含一特定值:Null。Null通常用於數據庫應用程序,表示未知數據或丟失的數據。 由於在數據庫中使用 Null 方法,Null 具有某些唯一的特性:
1.對包含 Null 的表達式,計算結果總是 Null。於是說 Null 通過表達式“傳播”;如果表達式的部分之值為 Null,那麼整個表達式的值也為Null。
2.將 Null 值、含 Null 的 Variant 變量或計算結果為 Null 的表達式作為參數傳遞給大多數函數,將會使函數返回 Null。
3.Null 值經由返回 Variant 數據類型的內在函數傳播。
也可用 Null 關鍵字指定 Null 值。
Z = Null
也可用 IsNull 函數測試 Variant 變量是否包含 Null 值。
If IsNull (X) And IsNull (Y) Then
Z = Null
Else
Z = 0
End If
如果將 Null 值賦予 Variant 以外的任何其它類型變量,則將出現可以捕獲的錯誤。而將 Null 值賦予 Variant 則不會發生錯誤,Null 將通過包含Variant 變量的表達式傳播(盡管 Null 並不通過某些函數來傳播)。可以從任何具有 Variant 返回值的函數過程返回 Null。
除非明確將 Null 賦予變量,否則變量不會設置成 Null 值,所以,如果不在應用程序中使用 Null,就不必書寫測試 Null 和處理 Null 的程序。
詳細信息 關於如何在表達式中使用Null的詳細信息,請參閱語言參考的“Null”部分。

Error 值
在 Variant 中,Error 是特定值,指出已發生的過程中的錯誤狀態。但是,與其它類型錯誤不同,這裡並未發生正常的應用程序級的錯誤處理。因此,程序員或應用程序本身可根據 Error 值進行取捨。利用 CVErr 函數將實數轉換成錯誤值就可建立 Error 值。 詳細信息 關於如何在表達式中使用 Error 值,請參閱《Visual Basic 6.0語言參考手冊》中的“CVErr 函數”部分。關於錯誤處理的信息,請參閱第十三章“調試代碼和處理錯誤”。有關 Variant 數據類型的更詳細信息,請參閱《聯機手冊》中的“高級變量主題”。

高級變量主題

數值在變量中的內部表示
Variant 變量維護它們所存儲的數值的內部表示。這個表示將決定 VisualBasic 在執行比較操作和其它操作時如何處理這些值。將值賦予 Variant 變量時,Visual Basic 會用最緊湊的表示正確記錄這個值。以後的操作可能使Visual Basic 改變這個用於特定變量的表示(Variant 變量不是無類型變量,而是能夠隨意改變類型的變量)。這些內部表示與本章前面在“數據類型”中討論的數據類型相一致。
注意 Variant 總保持 16 位,無論其中存儲了什麼數據。對象、字符串和數組,在物理上並非存於 Variant 之中;在這些情況下,用四個字節的 Variant 來保持對象引用、或者字符串或數組的指針。而真正的數據存在其它地方。
很多時候,不必了解Visual Basic為特殊變量使用哪一種變量類型;VisualBasic會自動轉換類型。若想了解Visual Basic正在使用哪種變量類型,可使用 VarType 函數。
例如,如果在 Variant 變量中存儲二進制值,Visual Basic 就會用 Double 內部表示。如果知道應用程序並不需要 Double 值提供的高精度(以及由此而來的低速度),那麼將此值轉換成 Single 甚至轉換成 Currency 就可以加快計算速度:
If VarType (X) = 5 Then X = CSng (X) '轉換成單精度。
對 Array 變量,VarType 的值等於數組元素與數據類型返回值之和。例如,這個數組包含 Double 值:
Private Sub Form_Click ()
Dim dblSample (2) As Double
MsgBox VarType (dblSample)
End Sub
Visual Basic 的今後版本可能會增加新的 Variant 表示,所以,任何根據VarType 函數的返回值做出判斷的代碼都應能適當地處理非當前定義的返回值。
詳細信息 關於 VarType 函數的信息,請參閱《Visual Basic 6.0語言參考手冊》中的“VarType 函數”。關於數組的更詳細信息,請參閱本章後面的“數組”。關於轉換數據類型的詳細信息,請參閱本章前面的“數據類型”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved