亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

變量的聲明和作用域——VB

系統(tǒng) 2384 0

一、聲明變量

變量在使用前,必須在代碼中進行聲明, 即創(chuàng)建該變量 。

在使用變量之前,首先需要聲明變量。就是說,必須事先告訴編譯器在程序中使用了哪些變量,及這些變量的數(shù)據(jù)類型以及變量的長度。這是因為在編譯程序執(zhí)行代碼之前編譯器需要知道如何給語句變量開辟存儲區(qū),這樣可以優(yōu)化程序的執(zhí)行。

聲明變量有兩種方式:隱式聲明、顯式聲明。

隱式聲明: 變量可以不經(jīng)聲明直接使用,此時 VB 給該變量賦予缺省的類型和值。這種方式比較簡單方便,在程序代碼中可以隨時命名并使用變量,但不易檢查。

顯式聲明: 用聲明語句創(chuàng)建變量。

強制顯式聲明變量 :

為了避免寫錯變量名引起的麻煩,用戶可以規(guī)定,只要遇到一個未經(jīng)明確聲明就當(dāng)成變量的名字, VB 都發(fā)出錯誤警告。方法是 ---- 強制顯式聲明變量。要強制顯式聲明變量,只須在類模塊、窗體模塊或標(biāo)準(zhǔn)模塊的聲明段中加入這條語句:

Option Explicit

這條語句是用來規(guī)定在本模塊中所有變量必須先聲明再使用,即不能通過隱式聲明來創(chuàng)建變量。在添加 Option Explicit 語句后, VB 將自動檢查程序中是否有未定義的變量,發(fā)現(xiàn)后將顯示錯誤信息。

如果要 自動插入 Option Explicit 語句 ,用戶只要在 工具 菜單中選取 選項 命令,然后單擊 選項 對話框中的 編輯器 選項卡,再選中 要求變量聲明 選項,如下圖 變量的聲明和作用域——VB

這樣 VB 就會在任何新模塊中自動插入 Option Explicit 語句,但只會在新建立的模塊中自動插入。所以對于已經(jīng)建立的模塊,只能用手工方法向現(xiàn)有模塊添加 Option Explicit 語句(只有再重新啟動 VB ,這項功能才有效)。

二、變量的作用域

變量的作用域指的是變量的有效范圍。為了能正確地使用變量的值,應(yīng)當(dāng)明確可以在程序的什么地方訪問該變量。 VB 中變量可以分為 3 類:局部( Local )變量、模塊( Module )變量及全局( Public )變量,其中模塊變量包括窗體模塊變量和標(biāo)準(zhǔn)模塊變量。各變量位于不同的層次。

局部變量

過程級變量只有在聲明它們的過程中才能被識別,它們又稱為局部變量。

Dim 或者 Static 關(guān)鍵字來聲明它們,兩者的區(qū)別在于: 在整個應(yīng)用程序運行時,用 Static 聲明的局部變量中的值一直存在,而用 Dim 聲明的變量只在過程執(zhí)行期間才存在。

對任何臨時計算來說,局部變量是最佳選擇。例如,可以建立十來個不同的過程,每個過程都包含稱作 intTemp 的變量(同一個變量名在不同的過程中意義可能不同)。只要每個 intTemp 都聲明為局部變量,那么每個過程只識別它自己的 intTemp 版本。任何一個過程都能夠改變它自己的局部的 intTemp 變量的值,而不會影響別的過程中的 intTemp 變量。

模塊變量

按照缺省規(guī)定,模塊級變量對該模塊的所有過程都可用,但對其它模塊的代碼不可用。可在模塊頂部的聲明段用 Private Dim 關(guān)鍵字聲明模塊級變量,從而建立模塊級變量。例如:

Private intTemp As Integer

在模塊級, Private Dim 之間沒有什么區(qū)別,但 Private 更好些,因為很容易把它和 Public 區(qū)別開來,使代碼更容易理解。

全局變量

為了使模塊級的變量在其它模塊中也有效,用 Public 關(guān)鍵字聲明變量。公用變量中的值可用于應(yīng)用程序的所有過程。和所有模塊級變量一樣,也在模塊頂部的聲明段來聲明公用變量。例如

Public intTemp As Integer

注意: 不能在過程中聲明公用變量,只能在模塊的聲明段中聲明公用變量。


總結(jié)以上可知 聲明語句有如下四種格式 , 這四種語句創(chuàng)建了不同特性的變量,下面來作詳細(xì)的介紹:

(I)Dim 語句,其格式為:

Dim <變量名> [As <數(shù)據(jù)類型> ]

程序運行時,上述聲明在內(nèi)存中為變量分配空間,并使 Visual Basic 了解隨后要處理數(shù)據(jù)的數(shù)據(jù)類型。

Dim 語句用于在標(biāo)準(zhǔn)模塊( Module )、窗體模塊( Form )或過程( Procedure )中定義變量或數(shù)組

Dim 語句在窗體的過程中聲明的變量稱為 局部變量 ,其作用域僅局限在本過程內(nèi)部,過程一旦執(zhí)行完畢,其值也就消失了。

例如

Dim Number As Integer ' 聲明 Number Integer (整型)變量。

Dim I As Integer,j As Integer,k As Integer ' 同時聲明為整型變量。

Dim AnyValue,MyValue 'AnyValue MyValue 按缺省情況被聲明為 Variant 類型,同時值被設(shè)為 Empty (空)。

Dim AnotherVar, Choice As Boolean, BirthDate As Date ' 在一行中聲明多種類型變量, AnotherVar Variant 類型,因為它的類型被省略了, Choice 為布爾型變量, BirthDate 為日期型變量。

(2)Private 語句.其格式為:

Private <變量名> [As <數(shù)據(jù)類型> ]

如果要 在一個窗體模塊的所有過程中共享同一個變量 ,則應(yīng) 在這個窗體模塊的聲明段 Private 語句進行聲明.這種變量稱為 模塊級變量 ,其作用域為整個窗體模塊。這就好比是您家里的電話號碼,它在您所在的城市是通用的,但出了這個范圍就不能單獨使用了。

(3)Public 語句,其格式為:

Public <變量名> [As <數(shù)據(jù)類型 > ]

用來在標(biāo)準(zhǔn)模塊中定義全局變量或數(shù)組 。如果在標(biāo)準(zhǔn)模塊的聲明段中用 Public 關(guān)鍵字來聲明模塊級變量,那么這個變量的作用域是整個工程,即它會在整個工程的所有模塊中有效,這種變量稱為 全局變量,也稱公用變量 。這就好比是加了郵政區(qū)號的電話號碼,在全國范圍內(nèi)通用。

(4)static 語句.其格式為:

static <變量名> [As <數(shù)據(jù)類型> ·

局部變量在過程執(zhí)行結(jié)束后其值不能被保留下來,在每一次過程重新執(zhí)行時,變量會被重新初始化。如果 希望在該過程結(jié)束之后,還能繼續(xù)保持過程中局部變量的值 ,就應(yīng)該用 static 關(guān)鍵字將這個變量 聲明為靜態(tài)變量 。這樣,即使過程結(jié)束,該靜態(tài)變量的值也仍然保留著。

例如我們可以為一個窗體編寫下面這樣一程序,可以對用戶在窗體上單擊的次數(shù)計數(shù)并用顯示出來。

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 = " 夜來風(fēng)雨聲 "
Case Else
Command1.Caption = " 花落知多少 "
IntCount = 0
End Select

End Sub

Static 換成 Dim, 運行一下,連續(xù)單擊窗體,兩者結(jié)果的不同顯而易見。

注意 : 就像在過程中不能使用 Public Private 關(guān)鍵字一樣,在模塊的聲明段中不能使用 static 關(guān)鍵字,會報錯。

定義完變量,初值的問題:

整數(shù): 0

浮點數(shù): 0.0

字符串:""

Variant Empty (保留字,關(guān)鍵字)不同與 null 0 , Nothing

判斷它有沒有賦值,就看它的值是不是 empty

變量的聲明和作用域——VB


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 天天综合天天综合色在线 | 日日艹夜夜 | 色综合久久综合欧美综合 | 日本欧洲95视频 | 国产色婷婷精品综合在线 | 免费一级特黄 欧美大片 | 国产成人精品免费影视大全 | 四虎影永久在线观看精品 | 久久手机精品视频 | 亚洲成人性视频 | 午夜激情免费 | 香蕉视频在线观看免费 | 日本中文字幕有码 | 呦系列视频一区二区三区 | 成人不卡视频 | 经典三级久久久久 | 亚洲成人一区二区 | 日本高清中文字幕一区二区三区 | 国产视频一 | 狠狠综合视频精品播放 | 久操香蕉 | 神马影院我不卡手机 | 中文字幕波多野不卡一区 | 日韩欧美视频在线 | 国产精品久久久久久久久久一区 | 狠狠激情 | 欧美一级毛片在线播放 | 青青青在线视频 | 老子影院午夜伦不卡不四虎卡 | 久草热草 | 亚洲欧洲一区二区三区久久 | 亚洲高清国产一线久久 | 国产日产欧美精品一区二区三区 | 国产毛片在线看 | 91久久精品一区二区三区 | 在线观看久久 | 成年人视频在线免费 | 中文字幕专区 | 免费播放欧美毛片欧美a | 亚洲精品动漫3d一区二区 | 久久乱69小说 |