聲明級別,本地和成員變數,共享和實例變數,將數據類型聲明,局部類型推理,聲明變數的特徵,命名規則,聲明變數,變數名,詳細信息,聲明變數的其它方式,隱式聲明,顯式聲明,VB變數類型,
聲明級別 本地和成員變數 一個局部變數 是一個過程中聲明。一個成員變數 屬於 Visual Basic 類型; 它在模組級別,在類、 結構或模組,但不是能在任何過程的類、 結構或模組的內部聲明。
共享和實例變數 在類或結構中,成員變數的類別取決於共享。如果它用聲明
共享 關鍵字,它是
共享的變數 ,和它存在於類或結構的所有實例之間共享的一個副本。
否則它是實例變數 ,並且為類或結構的每個實例創建的單獨副本。給定的一個實例變數副本是僅供類或結構在其中創建的實例。它不依賴於的類或結構的任何其他實例中的實例變數副本。
將數據類型聲明 作為 聲明語句中的子句可用於定義數據類型或所聲明的變數的對象類型。您可以指定任何以下類型的變數:
您可以聲明在一個語句中的多個變數,而無需重複的數據類型。在下面的語句中,變數i,j,並k聲明為類型Integer,l和m作為Long,和x和y作為Single:
Dim i, j, k As Integer ' All three variables in the preceding statement are declared as Integer. Dim l, m As Long, x, y As Single ' In the preceding statement, l and m are Long, x and y are Single. 有關數據類型的詳細信息,請參閱
數據類型 。對象的詳細信息,請參閱對象和類並使用組件編程。
局部類型推理 類型推理 用來確定未聲明的局部變數的數據類型As子句。編譯器將推斷變數的初始化表達式的類型的類型。這使您無需顯式聲明一個類型聲明變數。在以下示例中,同時num1和num2強類型為整數。
Public Sub inferenceExample() ' Using explicit typing. Dim num1 As Integer = 3 ' Using local type inference. Dim num2 = 3End Sub 如果你想要使用局部類型推理Option Infer必須設定為On。有關詳細信息,請參閱本地類型推斷和Option Infer 語句。
聲明變數的特徵 生存期 的變數是的時間段期間它是可供使用。一般情況下,變數存在,只要繼續存在 (如過程或類) 聲明的元素。如果該變數並不需要它的包含元素的生存期過後繼續存在,則不需要執行任何特殊的聲明中。如果變數需要一直存在時間超過其包含元素,則可以包括Static或Shared中的關鍵字及其Dim語句。有關詳細信息,請參閱在 Visual Basic 中的生存期。
作用域的變數是一組的所有代碼都可以引用它而無需限定其名稱。聲明位置取決於變數的作用域。位於給定區域中的代碼可以使用而無需限定其名稱在該區域中定義的變數。有關詳細信息,請參閱Scope in Visual Basic。
變數的訪問級別是有權訪問它的代碼的範圍。這由訪問修飾符 (如
公共 或
專用 ) 中使用的Dim語句。有關詳細信息。
命名規則 1 變數必須是以
字母 、漢字開頭並且以字母、漢字、數字、下劃線組成的
字元 串。最後一個字元可以是類型說明符,變數名中不能有空格。
2 變數名不能包含+ - * / !@ # ¥ ?小數點 等字元,且長度不能超過255。
3 不能用 Visual Basic 的
保留字 (例如End、
Len 、
Sub 等)作為變數名,但可以把保留字嵌入變數名中,同時變數名也不能是末尾帶有說明符的保留字。
4 Visual Basic 不區分變數名和其他名字中字母的大小寫,但習慣上,
符號常量 一般用大寫字母定義。
在 Visual Basic 中執行應用程式期間,用變數臨時存儲數值。變數有名字(用來
引用變數 所包含的值的詞)和數據類型(確定變數能夠存儲的數據的種類)。
可以把變數看作記憶體中存放未知值的所在處。例如,假定正在為水果鋪編一個銷售蘋果的軟體。在銷售實際發生之前並不知道蘋果的價格和銷量。此時,可以設計兩個變數來保存未知數— 將它們命名為 ApplePrice 和 ApplesSold。每次運行程式時,用戶就這兩個變數提供具體值。為了計算總的銷售額,並且將結果顯示在名叫 txtSales 的文本框中,代碼應該是這樣的:
Dim ApplePrice As Integer
Dim AppleSold As Integer '定義ApplePrice和AppleSold兩個整數型變數
txtSales.txt = ApplePrice * ApplesSold
每次根據用戶提供的數值,這個
表達式 返回不同的金額。由於有了變數,就可以設計一個算式,而不必事先知道實際的輸入是多少。
在這個例子中,ApplePrice 的數據類型是貨幣,而 ApplesSold 的數據類型是整數。變數還可以表示許多其它數值,比如:文本數值、日期、各種數值類型,甚至對象也在此列。
存儲和檢索變數中的數據
ApplesSold = 10 '將值10賦給變數ApplesSold。
ApplesSold = ApplesSold + 1 '變數ApplesSold的值加1。
注意,例子中的等號是賦值符,並不是等於操作符;它將數值 (10) 賦予變數 (ApplesSold)。
聲明變數 聲明變數就是事先將變數通知程式。要用
Dim 語句聲明變數,Dim 語句提供了變數名:
Dim variablename [As type]在過程內部用 Dim 語句聲明的變數,只有在該過程執行時才存在。過程一結束,該變數的值也就消失了。此外,過程中的變數值對過程來說是局部的— 也就是說,無法在一個過程中訪問另一個過程中的變數。由於這些特點,在不同過程中就可使用相同的變數名,而不必擔心有什麼衝突和意想不到變故。
vb中字元串變數在記憶體中 變數名 在同一個範圍內必須是唯一的。範圍就是可以
引用變數 的變化域— 一個過程、一個
窗體 等等。
由於 Dim 語句中的可選的 As type 子句,可以定義被聲明變數的數據類型或對象類型。數據類型定義了變數所存儲信息的類型。String、Integer 和 Currency 都是數據類型的例子。變數也可以包含來自 Visual Basic 或其它應用程式的對象。Object、Form1 和
TextBox 都是 Visual Basic 對象類型或類的實例。
詳細信息 關於對象的更詳細的信息,請參閱“用對象編程”和“用部件編程”。在本章後面的“數據類型”部分將詳細討論數據類型。
聲明變數的其它方式 不在過程內部,而在
窗體 、標準或
類模組 的聲明段聲明變數,這將使變數對模組中的所有過程有效。
用 Public 關鍵字聲明變數,這將使變數在整個應用程式中有效。
用 Static 關鍵字聲明一個
局部變數 ,那么,即使過程結束,變數的值也仍然保留著。
隱式聲明 在使用一個變數之前並不必先聲明這個變數。 例如,可以書寫這樣一個函式,在其中就不必在使用變數 TempVal 之前先聲明它:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
End Function
Visual Basic 用這個名字自動創建一個變數,使用這個變數時,可以認為它就是顯式聲明的。雖然這種方法很方便,但是如果把變數名拼錯了的話,會導致一個難以查找的錯誤。例如,假定寫了這樣一個函式:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
乍看起來,這兩段代碼好像是一樣的。但是因為在倒數第二行把 TempVal 變數名寫錯了,所以函式總是返回 0。當 Visual Basic 遇到新名字,它分辨不出這是意味著隱式聲明了一個新變數呢,還是僅僅把一個現有變數名寫錯了,於是只好用這個名字再創建一個新變數。
顯式聲明 為了避免寫錯變數名引起的麻煩,可以規定,只要遇到一個未經明確聲明就當成變數的名字,Visual Basic 都發出錯誤警告。
要顯式聲明變數,請
Option Explicit
—或—
在“工具”選單中選取“選項”,單擊“編輯器”選項卡,再複選“要求變數聲明”選項。這樣就在任何新模組中自動插入 Option Explicit 語句,但不會在已經建立起來的模組中自動插入;所以在工程內部,只能用手工方法向現有模組添加
Option Explicit 。
如果對包含 SafeSqr 函式的窗體或
標準模組 執行該語句,那么 Visual Basic 將認定 TempVal 和 TemVal 都是未經聲明變數,並為兩者都發出錯誤信息。隨後就可以顯式聲明 TempVal。
Function SafeSqr (num)
Dim TempVal
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
因為 Visual Basic 對拼錯了的 TemVal 顯示錯誤信息,所以能夠立刻明白是什麼問題。由於 Option Explicit 語句有助於抓住這些類型的錯誤,所以最好在所有代碼中使用它。
注意 Option Explicit 語句的作用範圍僅限於語句所在模組,所以,對每個需要 Visual Basic 強制顯式變數聲明的
窗體模組 、
標準模組 及
類模組 ,必須將 Option Explicit 語句放在這些模組的聲明段中。如果選擇“要求變數聲明”,Visual Basic 會在後續的窗體模組、標準模組及類模組中自動插入 Option Explicit,但是不會將它加入到現有代碼中。必須在工程中通過手工將 Option Explicit 語句加到任何現有模組中。
VB變數類型 一、Numeric數據類型
1、Integer(類型符%)
Integer指的是-32768到+32767之間的整數,通常這個範圍已經涵蓋了大多數可能會用到的數字。如果認為要用到的數字可能會超出這個範圍,可以考慮將其定義為Long。
2、Long(類型符&)
這種數據類型垢數字有時又稱為Long Integer。這種數據類型可以處理-2147483648到+2147483647之間的所有數字。與使用2個
位元組 的Integer不同,它使用4位元組記憶體存儲數據。
3、Single(類型符!)
Single適用於需要小數點的數字。Single可以處理-3.402823E38到-1.401298E-45之間的負值和1.401298E_45到3.402823E38之間的正值。
4、Double(類型符#)
這種數據類型需要使用8
位元組 記憶體來存儲數據。如果必須處理超大範圍的值,這種數據類型會很有用。
5、Currency(類型符@)
這種數據類型主要適用於貨幣值。它需要8位元組的記憶體來存儲數據。這種數據類型具有固定的小數位數(4位)。
二、Byte數據類型
某些情況下,可能需要以單個位元組的形式來訪問數據。在這種情況下,就需要使用Byte數據類型。它主要包括0到255之間的整數。Byte數據類型通常用於訪問
二進制檔案 、圖形和聲音檔案。
三、String數據類型(類型符$)
String數據僅用於存儲字元串。
四、Boolean數據類型
這種數據類型的值只能是True或False。對於Visual Basic,False關鍵字表示零值,True表示非零值。
五、Date數據類型
這種數據類型指的是能夠轉換為有效日期的數字或
字元串 數據。