VisualBasic變量、常數(shù)和數(shù)據(jù)類型及過程概述

字號(hào):

變量、常數(shù)和數(shù)據(jù)類型概述
     在 Visual Basic 環(huán)境下進(jìn)行計(jì)算時(shí),常常需要臨時(shí)存儲(chǔ)數(shù)據(jù)。例如,可能想要計(jì)算幾個(gè)值,將它們進(jìn)行比較,并根據(jù)比較的結(jié)果對(duì)它們進(jìn)行不同的操作。如果想要比較這些值,就要存儲(chǔ)它們,但不必把它們存入屬性。像大多數(shù)編程語(yǔ)言那樣,Visual Basic 使用變量來存儲(chǔ)值。變量具有名字(用來引用該變量所含的值的名詞)和數(shù)據(jù)類型(確定變量可以存儲(chǔ)的數(shù)據(jù)的種類)。數(shù)組可以用來存儲(chǔ)建立了索引的相關(guān)變量集。
     常數(shù)也存儲(chǔ)數(shù)值,顧名思義,在整個(gè)應(yīng)用程序執(zhí)行過程中,這些值都保持不變。常數(shù)的使用增加了代碼的可讀性,因?yàn)槲覀兛吹降氖蔷哂泻x的名字而不是數(shù)字。Visual Basic 有許多內(nèi)部常數(shù),但也可以建立自定義常數(shù)。
     在 Visual Basic 中,數(shù)據(jù)類型控制了數(shù)據(jù)的內(nèi)部存儲(chǔ)。按照缺省規(guī)定,VisualBasic 使用了變體數(shù)據(jù)類型。在不需要 Variant 提供的靈活性時(shí),還有許多其它可用的數(shù)據(jù)類型,它們可用來優(yōu)化代碼的速度和大小。
     變量
     在 Visual Basic 中執(zhí)行應(yīng)用程序期間,用變量臨時(shí)存儲(chǔ)數(shù)值。變量具有名字(用來引用變量所包含的值的詞)和數(shù)據(jù)類型(確定變量能夠存儲(chǔ)的數(shù)據(jù)的種類)。
     可以把變量看作內(nèi)存中存放未知值的所在處。例如,假定正在為水果鋪編一個(gè)銷售蘋果的軟件。在銷售實(shí)際發(fā)生之前并不知道蘋果的價(jià)格和銷量。此時(shí),可以設(shè)計(jì)兩個(gè)變量來保存未知數(shù),將它們命名為 ApplePrice 和ApplesSold。每次運(yùn)行程序時(shí),用戶就這兩個(gè)變量提供具體值。為了計(jì)算總的銷售額,并且將結(jié)果顯示在名叫 txtSales 的文本框中,代碼應(yīng)該是這樣的:
     txtSales.txt = ApplePrice * ApplesSold
     每次根據(jù)用戶提供的數(shù)值,這個(gè)表達(dá)式返回不同的金額。由于有了變量,就可以設(shè)計(jì)一個(gè)算式,而不必事先知道實(shí)際的輸入是多少。
     在這個(gè)例子中,ApplePrice 的數(shù)據(jù)類型是貨幣,而 ApplesSold 的數(shù)據(jù)類型是整數(shù)。變量還可以表示許多其它數(shù)值,比如:文本數(shù)值、日期、各種數(shù)值類型,甚至對(duì)象也在此列。
     存儲(chǔ)和檢索變量中的數(shù)據(jù)
     用賦值語(yǔ)句進(jìn)行計(jì)算,并將結(jié)果賦予變量:
     ApplesSold = 10         '將值 10
                   '傳給變量。
     ApplesSold = ApplesSold + 1
                   '變量值
                   '增一。
     注意,例子中的等號(hào)是賦值符,并不是等于操作符;它將數(shù)值 (10) 賦予變量 (ApplesSold)。
     聲明變量
     聲明變量就是事先將變量通知程序。要用 Dim 語(yǔ)句聲明變量,Dim 語(yǔ)句提供了變量名:
     Dim variablename [As type]
     在過程內(nèi)部用 Dim 語(yǔ)句聲明的變量,只有在該過程執(zhí)行時(shí)才存在。過程一結(jié)束,該變量的值也就消失了。此外,過程中的變量值對(duì)過程來說是局部的,也就是說,無法在一個(gè)過程中訪問另一個(gè)過程中的變量。由于這些特點(diǎn),在不同過程中就可使用相同的變量名,而不必?fù)?dān)心有什么沖突和意想不到變故。
     變量名:
     1.必須以字母開頭。
     2.不能包含嵌入的(英文)句號(hào)或者嵌入的類型聲明字符。
     3.不得超過 255 個(gè)字符。
     4.在同一個(gè)范圍內(nèi)必須是的。范圍就是可以引用變量的變化域,如一個(gè)過程、一個(gè)窗體等等。
     由于 Dim 語(yǔ)句中的可選的 As type 子句,可以定義被聲明變量的數(shù)據(jù)類型或?qū)ο箢愋?。?shù)據(jù)類型定義了變量所存儲(chǔ)信息的類型。String、Integer 和Currency 都是數(shù)據(jù)類型的例子。變量也可以包含來自Visual Basic或其它應(yīng)用程序的對(duì)象。Object、Form1 和 TextBox 都是 Visual Basic 對(duì)象類型或類的實(shí)例。
     詳細(xì)信息 關(guān)于對(duì)象的更詳細(xì)的信息,請(qǐng)參閱第九章“用對(duì)象編程”和第十章“用部件編程”。在本章后面的“數(shù)據(jù)類型”部分將詳細(xì)討論數(shù)據(jù)類型。聲明變量的其它方式:
    不在過程內(nèi)部,而在窗體、標(biāo)準(zhǔn)或類模塊的聲明段聲明變量,這將使變量對(duì)模塊中的所有過程有效。
    用 Public 關(guān)鍵字聲明變量,這將使變量在整個(gè)應(yīng)用程序中有效。
    用 Static 關(guān)鍵字聲明一個(gè)局部變量,那么,即使過程結(jié)束,變量的值也仍然保留著。
     隱式聲明
     在使用一個(gè)變量之前并不必先聲明這個(gè)變量。 例如,可以書寫這樣一個(gè)函數(shù),在其中就不必在使用變量 TempVal 之前先聲
    明它:
     Function SafeSqr (num)
     TempVal = Abs (num)
     SafeSqr = Sqr (TempVal)
     End Function
     Visual Basic 用這個(gè)名字自動(dòng)創(chuàng)建一個(gè)變量,使用這個(gè)變量時(shí),可以認(rèn)為它就是顯式聲明的。雖然這種方法很方便,但是如果把變量名拼錯(cuò)了的話,會(huì)導(dǎo)致一個(gè)難以查找的錯(cuò)誤。例如,假定寫了這樣一個(gè)函數(shù):
     Function SafeSqr (num)
     TempVal = Abs (num)
     SafeSqr = Sqr (TemVal)
     End Function
     乍看起來,這兩段代碼好像是一樣的。但是因?yàn)樵诘箶?shù)第二行把 TempVal 變量名寫錯(cuò)了,所以函數(shù)總是返回 0。當(dāng) Visual Basic 遇到新名字,它分辨不出這是意味著隱式聲明了一個(gè)新變量呢,還是僅僅把一個(gè)現(xiàn)有變量名寫錯(cuò)了,于是只好用這個(gè)名字再創(chuàng)建一個(gè)新變量。