一、聲明變量
變量在使用前,必須在代碼中進行聲明, 即創建該變量 。
在使用變量之前,首先需要聲明變量。就是說,必須事先告訴編譯器在程序中使用了哪些變量,及這些變量的數據類型以及變量的長度。這是因為在編譯程序執行代碼之前編譯器需要知道如何給語句變量開辟存儲區,這樣可以優化程序的執行。
聲明變量有兩種方式:隱式聲明、顯式聲明。
隱式聲明: 變量可以不經聲明直接使用,此時 VB 給該變量賦予缺省的類型和值。這種方式比較簡單方便,在程序代碼中可以隨時命名并使用變量,但不易檢查。
顯式聲明: 用聲明語句創建變量。
強制顯式聲明變量 :
為了避免寫錯變量名引起的麻煩,用戶可以規定,只要遇到一個未經明確聲明就當成變量的名字, VB 都發出錯誤警告。方法是 ---- 強制顯式聲明變量。要強制顯式聲明變量,只須在類模塊、窗體模塊或標準模塊的聲明段中加入這條語句:
Option Explicit
這條語句是用來規定在本模塊中所有變量必須先聲明再使用,即不能通過隱式聲明來創建變量。在添加 Option Explicit 語句后, VB 將自動檢查程序中是否有未定義的變量,發現后將顯示錯誤信息。
如果要
自動插入
Option Explicit
語句
,用戶只要在
“
工具
”
菜單中選取
“
選項
”
命令,然后單擊
“
選項
”
對話框中的
“
編輯器
”
選項卡,再選中
“
要求變量聲明
”
選項,如下圖
變量的作用域指的是變量的有效范圍。為了能正確地使用變量的值,應當明確可以在程序的什么地方訪問該變量。 VB 中變量可以分為 3 類:局部( Local )變量、模塊( Module )變量及全局( Public )變量,其中模塊變量包括窗體模塊變量和標準模塊變量。各變量位于不同的層次。
局部變量
過程級變量只有在聲明它們的過程中才能被識別,它們又稱為局部變量。
用 Dim 或者 Static 關鍵字來聲明它們,兩者的區別在于: 在整個應用程序運行時,用 Static 聲明的局部變量中的值一直存在,而用 Dim 聲明的變量只在過程執行期間才存在。
對任何臨時計算來說,局部變量是最佳選擇。例如,可以建立十來個不同的過程,每個過程都包含稱作 intTemp 的變量(同一個變量名在不同的過程中意義可能不同)。只要每個 intTemp 都聲明為局部變量,那么每個過程只識別它自己的 intTemp 版本。任何一個過程都能夠改變它自己的局部的 intTemp 變量的值,而不會影響別的過程中的 intTemp 變量。
模塊變量
按照缺省規定,模塊級變量對該模塊的所有過程都可用,但對其它模塊的代碼不可用。可在模塊頂部的聲明段用 Private 或 Dim 關鍵字聲明模塊級變量,從而建立模塊級變量。例如:
Private intTemp As Integer
在模塊級, Private 和 Dim 之間沒有什么區別,但 Private 更好些,因為很容易把它和 Public 區別開來,使代碼更容易理解。
全局變量
為了使模塊級的變量在其它模塊中也有效,用 Public 關鍵字聲明變量。公用變量中的值可用于應用程序的所有過程。和所有模塊級變量一樣,也在模塊頂部的聲明段來聲明公用變量。例如
Public intTemp As Integer
注意: 不能在過程中聲明公用變量,只能在模塊的聲明段中聲明公用變量。
總結以上可知 : 聲明語句有如下四種格式 , 這四種語句創建了不同特性的變量,下面來作詳細的介紹:
(I)Dim 語句,其格式為:
Dim <變量名> [As <數據類型> ]
程序運行時,上述聲明在內存中為變量分配空間,并使 Visual Basic 了解隨后要處理數據的數據類型。
Dim 語句用于在標準模塊( Module )、窗體模塊( Form )或過程( Procedure )中定義變量或數組
用 Dim 語句在窗體的過程中聲明的變量稱為 局部變量 ,其作用域僅局限在本過程內部,過程一旦執行完畢,其值也就消失了。
例如
Dim Number As Integer ' 聲明 Number 為 Integer (整型)變量。
Dim I As Integer,j As Integer,k As Integer ' 同時聲明為整型變量。
Dim AnyValue,MyValue 'AnyValue 和 MyValue 按缺省情況被聲明為 Variant 類型,同時值被設為 Empty (空)。
Dim AnotherVar, Choice As Boolean, BirthDate As Date ' 在一行中聲明多種類型變量, AnotherVar 為 Variant 類型,因為它的類型被省略了, Choice 為布爾型變量, BirthDate 為日期型變量。
(2)Private 語句.其格式為:
Private <變量名> [As <數據類型> ]
如果要 在一個窗體模塊的所有過程中共享同一個變量 ,則應 在這個窗體模塊的聲明段 用 Private 語句進行聲明.這種變量稱為 模塊級變量 ,其作用域為整個窗體模塊。這就好比是您家里的電話號碼,它在您所在的城市是通用的,但出了這個范圍就不能單獨使用了。
(3)Public 語句,其格式為:
Public <變量名> [As <數據類型 > ]
用來在標準模塊中定義全局變量或數組 。如果在標準模塊的聲明段中用 Public 關鍵字來聲明模塊級變量,那么這個變量的作用域是整個工程,即它會在整個工程的所有模塊中有效,這種變量稱為 全局變量,也稱公用變量 。這就好比是加了郵政區號的電話號碼,在全國范圍內通用。
(4)static 語句.其格式為:
static <變量名> [As <數據類型> ·
局部變量在過程執行結束后其值不能被保留下來,在每一次過程重新執行時,變量會被重新初始化。如果 希望在該過程結束之后,還能繼續保持過程中局部變量的值 ,就應該用 static 關鍵字將這個變量 聲明為靜態變量 。這樣,即使過程結束,該靜態變量的值也仍然保留著。
例如我們可以為一個窗體編寫下面這樣一程序,可以對用戶在窗體上單擊的次數計數并用顯示出來。
Private Sub Form_click()
Static I As Integer
I = I + 1
Label1.Caption = I
End Sub
再如:
Private Sub Command1_Click()
Static IntCount As Integer
IntCount = IntCount + 1
Select Case IntCount
Case 1
Command1.Caption = "
春眠不覺曉
"
Case 2
Command1.Caption = "
處處聞啼鳥
"
Case 3
Command1.Caption = "
夜來風雨聲
"
Case Else
Command1.Caption = "
花落知多少
"
IntCount = 0
End Select
End Sub
將 Static 換成 Dim, 運行一下,連續單擊窗體,兩者結果的不同顯而易見。
注意 : 就像在過程中不能使用 Public 和 Private 關鍵字一樣,在模塊的聲明段中不能使用 static 關鍵字,會報錯。
定義完變量,初值的問題:
整數: 0
浮點數: 0.0
字符串:""
Variant : Empty (保留字,關鍵字)不同與 null , 0 , Nothing
判斷它有沒有賦值,就看它的值是不是 empty
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
