VB編程基礎(chǔ)教程7C數(shù)據(jù)類型_第1頁
VB編程基礎(chǔ)教程7C數(shù)據(jù)類型_第2頁
VB編程基礎(chǔ)教程7C數(shù)據(jù)類型_第3頁
VB編程基礎(chǔ)教程7C數(shù)據(jù)類型_第4頁
VB編程基礎(chǔ)教程7C數(shù)據(jù)類型_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、VB 編程基礎(chǔ)教程7數(shù)據(jù)類型 程序樂園 變量是用來存儲值的所在處;它們有名字和數(shù)據(jù)類型。變量的數(shù)據(jù)類型決定了如何將代表這些值的位存儲到計算機的內(nèi)存中。在聲明變量時也可指定它的數(shù)據(jù)類型。所有變量都具有數(shù)據(jù)類型,以決定能夠存儲哪種數(shù)據(jù)。根據(jù)缺省規(guī)定,如果在聲明中沒有說明數(shù)據(jù)類型,則令變量的數(shù)據(jù)類型為 variant 。variant 數(shù)據(jù)類型很象一條變色龍 它可在不同場合代表不同數(shù)據(jù)類型。當指定變量為 variant 變量時,不必在數(shù)據(jù)類型之間進行轉(zhuǎn)換,visual basic 會自動完成各種必要的轉(zhuǎn)換。但是,如果知道變量確實總是存儲特定類型的數(shù)據(jù),并且還聲明了這種特定類型的變量,則 visual

2、 basic 會以更高的效率處理這個數(shù)據(jù)。例如,存儲人名的變量最好表示成 string 數(shù)據(jù)類型,因為名字總是由字符組成。除變量外,數(shù)據(jù)類型也用于其它場合。在給屬性賦值時,這個值就有數(shù)據(jù)類型;函數(shù)的參數(shù)也有數(shù)據(jù)類型。事實上,在 visual basic 中,凡是與數(shù)據(jù)有關(guān)的東西就與數(shù)據(jù)類型有關(guān)。 也可聲明任何基本類型的數(shù)組。詳細信息 關(guān)于更詳細信息,請參閱本章后面的“數(shù)組”部分。在“性能和兼容性的設(shè)計”中還將討論通過選擇數(shù)據(jù)類型來提高應用程序的性能。聲明帶數(shù)據(jù)類型的變量在使用非 variant 變量之前,必須使用 private 、public 、dim 或 static 語句將變量聲明為 a

3、s type 。例如,下列語句分別聲明了 integer 、double 、string 和 currency 類型的變量: private i as integerdim amt as doublestatic yourname as stringpublic billspaid as currency一個聲明語句可將多個聲明組合起來,請看下列語句:private i as integer,amt as doubleprivate yourname as string,billspaid as currencyprivate test,amount,j as integer注意 如果不提供數(shù)

4、據(jù)類型,則指定變量為缺省類型。在上例中,變量 test 和 amount 是 variant 數(shù)據(jù)類型。如果由于其它編程語言的經(jīng)驗使人感到同一個聲明語句中的所有變量都有相同的指定數(shù)據(jù)類型(此例中為 integer ),那么,此處的結(jié)果可能會令人感到新鮮。 numeric 數(shù)據(jù)類型visual basic 支持幾種 numeric 數(shù)據(jù)類型 integer (整型)、long (長整型)、single (單精度浮點型)、double (雙精度浮點型)和 currency (貨幣型)。與 variant 類型相比,numeric 類型占用的存儲空間通常要少。如果知道變量總是存放整數(shù)(如 12 )而

5、不是帶小數(shù)點的數(shù)字(如 3.57),就應當將它聲明為 integer 類型或 long 類型。整數(shù)的運算速度較快,而且比其它數(shù)據(jù)類型占據(jù)的內(nèi)存要少。在 for next 循環(huán)內(nèi)作為計數(shù)器變量使用時,整數(shù)類型尤為有用。詳細信息 關(guān)于控制結(jié)構(gòu)的詳細資料,請參閱本章后面的“控制結(jié)構(gòu)概述”。如果變量包含小數(shù),則可將它們聲明為 single 、double 或 currency 變量。currency 數(shù)據(jù)類型支持小數(shù)點右面 4 位和小數(shù)點左面 15 位;它是一個精確的定點數(shù)據(jù)類型,適用于貨幣計算。浮點(single 和 double )數(shù)比 currency 的有效范圍大得多,但有可能產(chǎn)生小的進位誤差

6、。注意 浮點數(shù)值可表示為 mmmeeee 或 mmmdeee ,其中 mmm 是假數(shù),而 eee 是指數(shù)(以 10 為底的冪)。single 數(shù)據(jù)類型的最大正數(shù)值為 3.402823e+38,或 3.4 乘以 10 的 38 次方;double 數(shù)據(jù)類型的最大正數(shù)值是 1.79769313486232d+308 或 1.8 乘以 10 的 308 次方。用 d 將數(shù)值文字中的假數(shù)部分和指數(shù)部分隔開,就會導致將該值作為 double 數(shù)據(jù)類型來處理。同樣,用這種方式使用 e ,也會導致將該值作為 single 數(shù)據(jù)類型來處理。 byte 數(shù)據(jù)類型如果變量包含二進制數(shù),則將它聲明為 byte 數(shù)據(jù)

7、類型的數(shù)組。(本章后面的“數(shù)組”中將討論數(shù)組)。在轉(zhuǎn)換格式期間用 byte 變量存儲二進制數(shù)據(jù)就可保留數(shù)據(jù)。當 string 變量在 ansi 和 unicode 格式間進行轉(zhuǎn)換時,變量中的任何二進制數(shù)據(jù)都會遭到破壞。在下列任何一種情況下,visual basic 都會自動在 ansi 和 unicode 之間進行轉(zhuǎn)換:讀文件時寫文件時調(diào)用 dll 時調(diào)用對象的方法和屬性時除一元減法外,所有可對整數(shù)進行操作的運算符均可操作 byte 數(shù)據(jù)類型。因為 byte 是從 0 255 的無符號類型,所以不能表示負數(shù)。因此,在進行一元減法運算時,visual basic 首先將 byte 轉(zhuǎn)換為符號整數(shù)

8、。所有數(shù)值變量都可相互賦值,也可對 variant 類型變量賦值。 在將浮點數(shù)賦予整數(shù)之前, visual basic要將浮點數(shù)的小數(shù)部分四舍五入,而不是將小數(shù)部分去掉。詳細信息 關(guān)于 unicode 和 ansi 轉(zhuǎn)換的詳細信息,請參閱“國際化”。string 數(shù)據(jù)類型如果變量總是包含字符串而從不包含數(shù)值,就可將其聲明為 string 類型。private s as string然后可將字符串賦予這個變量,并用字符串函數(shù)對它進行操作。s = “database”s = left (s,4按照缺省規(guī)定,string 變量或參數(shù)是一個可變長度的字符串,隨著對字符串賦予新數(shù)據(jù),它的長度可增可減。

9、也可以聲明字符串具有固定長度??捎靡韵抡Z法聲明一個定長字符串: string * size例如,為了聲明一個長度為 50 字符的字符串,可用下列語句:dim empname as string * 50如果賦予字符串的字符少于 50 個,則用空格將 empname 的不足部分填滿。如果賦予字符串的長度太長,已不能成為定長字符串,則 visual basic 會直接截去超出部分的字符。 因為定長字符串用空格填充尾部多余的空間,所以在處理定長字符串時可發(fā)現(xiàn),刪除空格的 trim 和 rtrim 函數(shù)是很有用的??蓪藴誓K中的定長字符串聲明為 public 或 private 。在窗體和類模塊中,

10、必須將定長字符串聲明為 private 。詳細信息 請參閱語言參考中的“l(fā)trim 、rtrim function 和 trim 函數(shù)”。交換字符串和數(shù)字如果字符串表示數(shù)值,則可將字符串賦予數(shù)值變量。也可將數(shù)值賦予字符串變量。例如,將命令按鈕、文本框和列表框放置在窗體中。在命令按鈕的 click 事件中輸入下列代碼。運行應用程序并單擊命令按鈕。private sub command1_click (dim intx as integerdim stry as stringstry = “100.23intx = stry 將字符串傳遞給數(shù)值變量。list1.additem cos (stry

11、將字符串中數(shù)值的余弦值。添加到列表框中。stry = cos (stry 將余弦值傳遞給字符串變量。text1.text = stry 在文本框中顯示字符串。end subvisual basic 會自動強制變量為適當?shù)臄?shù)據(jù)類型。在轉(zhuǎn)換字符串和數(shù)值時要小心;如果傳送字符串中的值不是數(shù)值,則在運行時會出錯。boolean 數(shù)據(jù)類型若變量的值只是“true/false”、“yes/no”、“on/off”信息,則可將它聲明為 boolean 類型。boolean 的缺省值為 false 。在下面的例子中,blnrunning 是 boolean 變量,存儲簡單的 yes/no 設(shè)置。dim bln

12、running as boolean查看磁帶是否在轉(zhuǎn)。if recorder.direction = 1 thenblnrunning = trueend ifdate 數(shù)據(jù)類型date 和 time 值既可包含在特定的 date 數(shù)據(jù)類型中,又可包含在 variant 變量中。一般的 date 特性適用于這兩種類型。詳細信息 請參閱聯(lián)機手冊的“高級變量主題”中的“在 variant 變量中存儲 date/time 值”部分。當其它數(shù)值數(shù)據(jù)類型轉(zhuǎn)換為 date 時,小數(shù)點左邊的值表示 date 信息,小數(shù)點右邊的值則代表 time 。午夜為 0,正午為 0.5。負數(shù)表示公元 1899 年 12

13、 月 31 日之前的 date 。 object 數(shù)據(jù)類型object 變量作為 32 位(4 個字節(jié))地址來存儲,該地址可引用應用程序中或某些其它應用程序中的對象。可以隨后(用 set 語句)指定一個被聲明為 object 的變量去引用應用程序所識別的任何實際對象。dim objdb as objectset objdb = opendatabase (“c:vb5biblio.mdb”在聲明對象變量時,請試用特定的類,而不用一般的 object (例如用 textbox 而不用 control ,或者象上面的例子那樣,用 database 取代 object )。運行應用程序之前,visu

14、al basic 可以決定引用特定類型對象的屬性和方法。因此,應用程序在運行時速度會更快。在“對象瀏覽器”中列舉了特定的類。當使用其它應用程序的對象,并在“對象瀏覽器”中的“類”列表中列舉對象時,不要用 variant 或一般的 object ,而應聲明對象。這樣可確保 visual basic 能夠識別引用的特定類型對象,在運行時解決引用問題。詳細信息 關(guān)于創(chuàng)建和指定對象以及對象變量的更詳細信息,請參閱本章后面的“創(chuàng)建對象”部分。轉(zhuǎn)換數(shù)據(jù)類型visual basic 提供了幾種轉(zhuǎn)換函數(shù),可用來將值轉(zhuǎn)換成特定數(shù)據(jù)類型。例如,用 ccur 函數(shù)將值轉(zhuǎn)換成 currency 類型:payperwe

15、ek = ccur (hours * hourlypay轉(zhuǎn)換函數(shù) 將表達式轉(zhuǎn)換成cbool booleancbyte byteccur currencycdate datecdbl doublecint integerclng longcsng singlecstr stringcvar variantcverr error注意 對目標數(shù)據(jù)類型,傳遞到轉(zhuǎn)換函數(shù)的值必須是有效的,否則會發(fā)生錯誤。例如,如果想把 long 型數(shù)轉(zhuǎn)換成 integer 型數(shù),那么,long 型數(shù)必須在 integer 數(shù)據(jù)類型的有效范圍之內(nèi)。詳細信息 在聯(lián)機幫助中查找指定的轉(zhuǎn)換函數(shù)。variant 數(shù)據(jù)類型varia

16、nt 變量能夠存儲所有系統(tǒng)定義類型的數(shù)據(jù)。如果把它們賦予 variant 變量,則不必在這些數(shù)據(jù)的類型間進行轉(zhuǎn)換; visual basic 會自動完成任何必要的轉(zhuǎn)換。例如:dim somevalue 缺省為 variant 。somevalue = “17 somevalue 包含 “17(雙字符的串)。somevalue = somevalue 15 現(xiàn)在, somevalue 包含數(shù)值 2。somevalue = “u ” & somevalue 現(xiàn)在, somevalue 包含 “u2 (雙字符的串)。 不必過多關(guān)注 variant 變量中數(shù)據(jù)的類型就可對 variant 變量進行操作

17、,但須避免落入陷阱。如果對 variant 變量進行數(shù)學運算或函數(shù)運算,則 variant 必包含某個數(shù)。更詳細的信息,請參閱聯(lián)機手冊中“高級變量主題”中的“變量中存儲的 numeric 值”部分。如果正在連接兩個字符串,則用 ” & ” 操作符而不用 ” + ” 操作符。更詳細的信息,請參閱聯(lián)機手冊中“高級變量主題”中的“variant 變量中存儲的 strings ”部分。 除了可以像其它標準數(shù)據(jù)類型一樣操作外,variants 還包含三種特定值:empty ,null 和 error 。empty 值有時需要知道是否已將一個值賦予所創(chuàng)建的變量。在賦值之前,variant 變量具有值 em

18、pty 。值 empty 是異于0、零長度字符串 (“” 或 null 值的特定值??捎?isempty 函數(shù)測試 empty 值:if isempty (z then z = 0當 variant 變量包含 empty 值時,可在表達式中使用它;將其作為 0 或零長度字符串來處理,這要根據(jù)表達式來定。只要將任何值(包括 0、零長度字符串或 null )賦予 variant 變量,empty 值就會消失。而將關(guān)鍵字 empty 賦予 variant 變量,就可將 variant 變量恢復為 empty 。null 值variant 數(shù)據(jù)類型還可包含一特定值:null 。null 通常用于數(shù)據(jù)庫應用程序,表示未知數(shù)據(jù)或丟失的數(shù)據(jù)。 由于在數(shù)據(jù)庫中使用 null 方法,null 具有某些唯一的特性:對包含 null 的表達式,計算結(jié)果總是 null 。于是說 null 通過表達式“傳播”;如果表達式的部分之值為 null ,那么整個表達式的值也為 null 。將 null 值、含 null 的 variant 變量或計算結(jié)果為 null 的表達式作為參數(shù)傳遞給大多數(shù)函數(shù),將會使函數(shù)返回 null 。null 值經(jīng)由返回 variant 數(shù)據(jù)類型的內(nèi)在函數(shù)傳播。也可用 null 關(guān)鍵字指定 null 值。z = n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論