Visual Studio 簡介
進入Windows世界的圖形化程式設計介面
工作環境介面(圖)
Microsoft 於2008年推出Visual Basic 2008版,也順勢推出.NET Framework 3.5 。強調更多在程式設計上的便利
更在2010年推出Visual Studio (Visual Studio 2010 Express Visual Basic),這個版本有何不同,筆記要認真做。
部分資料型態與物件的使用有相當的變化,讀者應注意此部分的差別
本筆記內容修正中。請特別注意
連接外站:維基百科,臺灣微軟Visual Studio
資料型態
使用字元集(Character Set)
a-z,A-Z,0-9,28個特殊符號,中文字,unicode編碼
保留字
為系統保留所使用,使用者不可以該名稱另行命名
運算碼(運算子)Operator
依運算優先順序,依序分為算術運算子、關係運算子與邏輯運算子等三種
( ) | ^ | - | * / | \ | mod | + - | 關係 | 邏輯 |
刮號 | 次方 | 負號 | 乘除 | 整數除 | 餘數除 | 加減 | 大於>、等於=、小於<、不等於< >、<=、>=、 |
not,and,or,xor等 |
[註1]字串比較子like,可以利用特殊字元進行比較
[註2]在VB 2008裡有關andalso與orelse的關係運算特點如下:
運算元Operand
待運算的資料(常數、變數、函式)
運算式
運算式=運算元+運算子+運算元。例:x=x+1,x稱為運算元,+稱為運算子。在VB中運算式的左邊只有一個運算元
複合指定運算式
當指定運算子(=)左右兩邊都有相同的變數名稱時,可以採用複合指定運算子的方式來表示。此時左邊必須是變數、陣列元素、結構成員或參考型別變數。
例如:X+=2 (X=X+2) ,X^=2(X=X^2),X/=2+5(此例中先進行2+5的運算,再做X=X/7運算)
常用特殊符號
符號 | 範例 | 用途 |
= | x=x+2 | 表示「指定」。將符號右邊運算式的運算結果指定給符號左邊的變數 |
,與; | print x,y print "x+y=";x+y |
於同一行顯示 各顯示資料間不留空白(連續顯示) |
? | ? x+y | 同print指令 |
: | z=y:y=x:x=z | 合併多行敘述 |
_ | x+=2 _ +5 |
敘述分行。若將一行程式碼敘述分行,則在要分行的位置輸入一個半形空白,再輸入_(底線符號) |
’ | z=y:y=x:x=z '變數x與y的內容交換 |
註解程式 |
+,& | "Mary is "+"10 years old" "Today is "ߗ/7/30# |
字串型別串接(+)例:"123456"="123"+"456" 各種資料型別串接(&)"今天是"& date() |
資料種類
資料型別
資料所佔記憶體空間與型別定義字元
資料型別 | 英文名稱 | 型別字元 | 儲存記憶體空間 |
位元組整數 | byte |
1 byte | |
短整數 | UShort Short |
2 byte | |
整數 | Integer UInteger |
% |
4 byte |
長整數 | Long ULong |
& |
8 byte |
單精度浮點數 | Single | ! | 4 byte |
倍精度浮點數 | Double | # | 8 byte |
十進位數 | Decimal | @ | 16 byte |
字串 | String | $ | 固定長度DIM A as String *10 可變長度+10 byte DIM A as String "這是字串範例",Unicode |
日期 | Date | 8 byte #2008/03/22 12:00:00 AM# |
|
布林 | Boolen | True,False | |
字元 | Char | 2 byte | |
物件 | Object | ||
結構 | 使用者自訂 |
注意VB對於不同資料型別的運算與進位的特殊運算方式
變數的命名規則:
建議變數命名方式:
學習Visual Basic的三大重點:
輸入與輸出
註:此部分語法尚在修正中
輸出部分
msgbox參數列表
標籤物件label
執行按鈕Button
輸入部分
控制項輸入
文字方塊TEXTBox
選擇鈕optionbutton
框架Frame
核取方塊CheckBox
清單方塊ListBox
for i=1 to list1.listcount-1 if list1.selected(i) then print list1.list(i) end if
綜合清單方塊ComboBox
4.物件導向寫法
設定物件屬性
5.物件(Object)、事件(Event)、事件驅動(Event Driven)
Visual Basic 2010 Express 的控制項,事件視窗
事件驅動命名規則:物件_事件,comand1_click
6.語法
GoTo [Label]
sub comamnd1_click() L10:A=100 B=A*3 Goto L10 end sub
IF ... Then GoTo [label]
sub comamnd1_click() I=1 L10:Print I I=I+1 If I<=5 Then GoTo L10 end sub
If-(條件式) Then (敘述)
當條件式符合成立時,便執行then後的敘述。程式範例如下所示
If I < 10 Then Print I:I=I+1:Goto L10
If I < 10 Then I=I+1 Print I End If
If I < 10 Then I=I+1 else Print I End If
If I < 10 Then If I mod 2 =0 Then even=even+1 End If Else If I mod 3 = 0 Then Triple=Triple+1 End If End If
If I mod 2 =0 Then even=even+1 Elseif I mod 3 =0 then triple=triple+1 Elseif I mod 7 =0 then sevens=sevens+1 Else notanything=notanthing+1 End If
Select ... Case
select case value case 100 print "very good!" case 90 print "Not bad!" case 80 print "Normal" case else print "You need work hard" end select
L10:ages=val(inputbox("請輸入年齡")) select case ages case 0 to 20 print "青少年" case 21 to 30 print "青年" case 30 to 50 print "中年" case else print "請輸入適當年齡" goto L10 end select
For...Next
for i=1 to 10 sum=sum+i next
for i=5 to 100 step 5 sum=sum+i next
For...Each
While ... Wend
n=1 while a^n < 1024 n=n+1 wend print n
Do (while/until)... Loop 或Do... Loop (while/until)
a=124:b=256 do if a>b then remind=a mod b a=remind else remind = b mod a b=remind end if loop until (a=0 or b=0) if a=0 then print b else print a
a=124:b=256 do if a>b then remind=a mod b a=remind else remind = b mod a b=remind end if loop while (a<>0 and b<>0) if a=0 then print b else print a
Exit Do
dim sum,i as integer do sum=sum+i i=i+1 if i= 10 then exit do loop
陣列Array
'第一種宣告方法 dim x(2) as integer for i=0 to 2 x(i)=2*i^2+i+1 next
'第二種宣告方法 dim x(-2 to 10) as integer for i=-2 to 10 x(i)=i^2+1 next
'取出陣列註標 dim x(-2 to 10) as integer print lbound(x) '取出lower bound print ubound(x) '取出upper bound
'可變陣列註標 dim a(5) '陣列a屬於固定個數的陣列 dim b() '一開始宣告陣列b的個數為0,日後可以改變該陣列的元素個數 redim c(10) '陣列c屬於可變個數的陣列 redim preserve c(7) '陣列宣告改變後,其中c(0)至c(7)的元素被保留
'二維陣列 dim a(5,4) '陣列a屬於30個元素的陣列 dim b(4,2,5) '陣列b屬於多維陣列 x=array("普通科","綜合高中","資料處理科","商業經營科")
'array()函數 x=array("普通科","綜合高中","資料處理科","商業經營科") 'x屬於variant變數 for i=lbound(x) to ubound(x) print x(i) next
副程式與函數
副程式與函數則是用來封裝敘述區塊的程式單元,被封裝在副程式及函數內的敘述區塊,並不屬於任何敘述,是個別獨立的。但是這些獨立的程式單元卻可以讓其他程式單元使用。所以經常重複利用到的程式單元,便可以寫成副程式或函數。以便節省系統開發的時間,以及系統除錯所需的時間。使系統具有模組化特性。在VB中副程式可以分為SUB副程式,Function副程式,Properity副程式,Event副程式
副程式
在程式中呼叫副程式的方式
副程式與參數傳遞
將待處理的資料,依據一定的規則傳送至副程式進行進一步的處理,便稱為參數傳遞。基本的表示法例如:
SUB 副程式名(參數,參數,...)
處理敘述
END SUB
若以程式敘述表示,則如下所示:
SUB ADDSEQ(X,Y,Z)
SUM= X+Y+Z
PRINT SUM
END SUB
CALL ADDSEQ(1,2,3)
實際參數與形式參數
參數的傳遞,在呼叫程式稱為實際參數,而在被呼叫的副程式稱為形式參數。 以上者為例:1,2,3稱為實際參數,而x,y,z稱為形式參數
實際參數可以為值或是變數。其呼叫後處理的方式有所差異。若是以值呼叫,則該值會傳遞給副程式進行處理(傳值呼叫);而若是以變數呼叫,則該變數會替代副程式中的形式參數(傳址呼叫)。例如:
call addseq(1,2,3)
或
a=2:b=3:c=4
call addseq(a,b,c)
傳址改傳值:call addvalue(x:=(A),y:=(B),z:=(C)) ,在實際參數列,將變數加上括號
傳址改傳值:addval(ByVal x),在副程式中定義,在形式參數前加上ByVal關鍵字
吾人可以總結:
自訂函數
function f(x)
f=x^2+2x=1
end function
遞迴
函數連續呼叫本身
Function FION(X)
If X = 1 Then
FION = 1
Else
FION = X ^ 2 + FION(X - 1)
End If
End
Function
Private Sub Form_Activate()
Print FION(5)
End Sub
7.資料庫存取
8.ADO.NET