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 + - 關係 邏輯
刮號 次方 負號 乘除 整數除 餘數除 加減

大於>、等於=、小於<、不等於< >、<=、>=、
like [註1](字串比較)、is(物件比較)、andalso、orelse[註2]等運算子

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
Sbyte

  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

綜合清單方塊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