920 likes | 1.1k Views
Visual Basic .NET 語言介紹. 程å¼çš„æ–·è¡Œ. æ–·è¡Œå—å…ƒ VB.NET 使用底線「 _ ã€ä½œç‚ºæ–·è¡Œå—元,利用斷行å—å…ƒå¯ä»¥å°‡å¤ªé•·çš„程å¼ç¢¼æ‹†æˆè¼ƒæ˜“閱讀的方å¼ã€‚æ–·è¡Œæ™‚å¿…é ˆåœ¨å®Œæ•´æ•˜è¿°çš„å‰é¢æˆ–後é¢ç©ºä¸€å€‹ç©ºæ ¼å¾Œï¼Œå†åŠ 上斷行å—元,æ‰å¯ä»¥å°‡ç¨‹å¼æ•˜è¿°æŠ˜åˆ°ä¸‹ä¸€è¡Œã€‚. Response.Write(CStr(sngFeet) & " 英呎 " & CStr(sngInches) & " 英å‹ç‰æ–¼ " & CStr(sngCentimeters) & " 公分 "). Response.Write(CStr(sngFeet) & " 英呎 " & _
E N D
程式的斷行 • 斷行字元VB.NET使用底線「_」作為斷行字元,利用斷行字元可以將太長的程式碼拆成較易閱讀的方式。斷行時必須在完整敘述的前面或後面空一個空格後,再加上斷行字元,才可以將程式敘述折到下一行。 Response.Write(CStr(sngFeet) & " 英呎 " & CStr(sngInches) & " 英吋等於 " & CStr(sngCentimeters) & " 公分") Response.Write(CStr(sngFeet) & " 英呎 " & _ CStr(sngInches) & " 英吋等於 " & _ CStr(sngCentimeters) & " 公分") Response.Write("在斷行時,必須在完整的" & _ "敘述前面或後面空一個空格。")
程式的註解 • 註解 • 註解是給程式設計師看的程式碼說明,VB.NET遇到註解會予以忽略跳過,在註解符號後面的資料全部視為註解。 • VB.NET有兩種標籤的方式,一是使用單引號「‘」,另外一種則是使用REM關鍵字。 sngCentimeters=((sngFeet*12)+sngInches)*2.54 ‘將英制單位轉成公制單位 sngCentimeters=((sngFeet*12)+sngInches)*2.54 REM 這是註解 REM 以上為將英制單位轉成公制單位 Response.Write(CStr(sngFeet) & " 英呎 " & _ CStr(sngInches) & " 英吋等於 " & _ CStr(sngCentimeters) & " 公分")
變數 • 變數的基本概念 • 作為暫時存放程式執行過程中部分特定值 • 變數的宣告 • 變數名稱:有意義的文字代碼來取代16進制的記憶位置 • 資料型態:決定變數可佔的記憶體大小和可存放的內容 • 宣告方式:dim 變數名稱 as 資料型態
變數 • 選擇變數的資料型別使用變數前一定要宣告變數名稱及資料型別。 • 為變數命名變數的命名要考慮容易理解與一慣性。
變數 • 命名規則 • 須以英文字母或底線_開頭。 • 其中不可包含空格,但可包含數字。 • 必須在同一範圍內是獨一無二的。 • 不可以包含標點或型別宣告字元,但可以包含底線。 • 不可以和VB.NET的保留字,或系統物件名稱一樣。
宣告變數 • 宣告變數VB.NET 以「dim」 關鍵字來宣告變數,並且在 as關鍵字後面指定所要使用的變數型別。不指定變數的型別,VB.NET 預設為 Object 型別。 • 語法 • Dim 變數名稱 [As 資料型別] • Dim strUserName As String • Dim shtPrice As Short • Dim objPen As Object • Dim objPen
變數初值化 宣告變數時也可以指定一個值作為變數的初始值 ,語法為:Dim 變數名稱 As 型別 = 初始值 <html> <% Dim strUserName As String = "Charles" Dim shtAge As Short = 30 Response.Write(strUserName) Response.Write(" 你好, 你的年齡是: ") Response.Write(shtAge) %> </html>
變數型別宣告字元 • 型別宣告字元VB.NET的變數不分大小寫 。 VB.NET為了讓我們使用方便,可以利用型別宣告字元來宣告變數 • 例如:Dim intIncome%Dim intPayment As IntegerDim intIncome%, shtAge As Short
變數 範例 – 計算身高173公分的男生體重 <html> <% Dim bytHeight As Byte Dim bytWeight As Byte bytHeight=173 bytWeight=(bytHeight-80)*0.7 Response.Write(bytWeight) %> </html>
變數-共用型別 • 共用型別系統在任何Microsoft.NET語言中所宣告的變數,最終都會轉成.NET Framework共用型別。所以在VB.NET中也可以同時混用.NET Framework共用型別來宣告變數。 • Dim A As Int32 等於 Dim B As Integer
陣列 • 陣列陣列是一種可以用同一個變數名稱記載多相同型別資料的一種資料結構,這個結構裡面是由相同資料型別的元素所組合而成。 • 宣告語法Dim 陣列名稱(元素上界限)[AS 資料型別]Dim shtAge(5) As Short
陣列的存取 • 之前的敘述宣告了一個名為shtAge的精簡整數型別陣列,這個陣列可以記錄六個元素。 這個陣列宣告後在記憶體中產生六個連續記憶體區塊,六個元素分別都填入了初始值0,並且將每個元素分配了一個索引值(index)。陣列的索引值一律從0開始,而一直到所宣告的上界限為止。若要存取指定元素中的資料,則要利用這個索引值。
陣列初始值宣告 • 宣告的時候指定陣列內元素的初始值 • 陣列雖然方便使用,可是它不是不用付出代價的;這個代價就是越大的陣列越佔記憶體空間。故對於陣列,使用多少就宣告多少。 Dim 陣列名稱() [AS 資料型別] = {值1, 值2, 值3,…} Dim shtAge() As Short = {20,21,22,23,24,25}
多維陣列 • 多維陣列想要利用陣列來管理及群組資料,可以用多維陣列。 • 上面敘述宣告了一個名為shtStudent精簡整數型別的二維陣列,這個陣列為6×2的陣列,可以記錄12個元素。 Dim shtStudent(5,1) As Short
多維陣列的初始值設定 • 多維陣列的初始多維陣列也可以在宣告的時後初值化陣列內容。 Dim 陣列名稱(,[…,]) [AS 資料型別] = {{值1值,N…}, {值1,值N…}[,…{}]} Dim shtStudent(,) As Short = {{1,2,3,4,5,6},{7,8,9,10,11,12}}
動態陣列 • 動態陣列無法精確的確定陣列所要使用的大小時,在宣告陣列的時候空出元素的數目即可。 • ReDim敘述也可以用來重新配置陣列的大小。注意,ReDim是敘述不是宣告,故必須要先宣告任意一陣列後,才可以使用ReDim敘述。 Dim shtStudent() As Short ReDim shtStudent(5)
改變陣列元素數目 • 下列範例是將shtStudent這個陣列擴張1個元素,並保留其值: • 針對多維陣列也可改變其元素的數目,但是陣列的維度不可被改變,而且只有最後一維的元素數量可以被改變,若是你改變了陣列的維度或是其他維的元素數目,則會導致錯誤。 Dim shtStudent() As Short = {20,21,22,23,24,25} ReDim Preserve shtStudent(6)
物件型別的陣列 • 物件型別的陣列 • 陣列裡面的資料型別,必須要和我們在宣告陣列時所指定的資料型別一樣。 • 如果這個陣列的資料型別為物件(Object)型別。 • 可以存放四個元素的範例: Dim objStudent(3) As Object objStudent (0) = "Charles Lin“ objStudent (1) = "100 Civil Blvd“ objStudent (2) = 29 objStudent (3) = #10/03/1973#
取得使用者輸入 • 要取得使用者輸入的資料,要使用Request物件。 • 變數 = Request("參數名稱") <html> <% Dim strName As String strName=Request("MyName") Response.Write("Hello, ") Response.Write(strName) %> </html>
使用者輸入資料 • 客戶端要傳送資料給網頁伺服器,只要在網址後面加上問號,並將資料名稱以及指定的值填入即可,這個輸入的資料稱為「參數」,如下敘述所示: http://127.0.0.1/cr/ch03/EX07.aspx?MyName=Charles
多個參數輸入 • 參數也可以同時輸入多個,參數間以「&」符號來區隔即可。 <html> <% Dim strName, strCity As String strName=Request("MyName") strCity=Request("MyCity") Response.Write("Hello, " & strName & ", You live in " & strCity) %> </html> http://127.0.0.1/cr/ch03/EX08.aspx?MyName=Charles&MyCity=Taipei
設定IIS的編碼及解碼語系 • 需要設定IIS伺服器對於接收及傳送資料的編碼語系,才能正確的顯示中文,這個設定檔案名稱為「web. config」。 <!--web.config Configuration File--> <configuration> <system.web> <globalization requestEncoding="big5" responseEncoding="big5"/> </system.web> </configuration>
response物件 • Response.write(“顯示的訊息”) • Response.redirect(“URL”) • Response.end
資料型別轉換 • 型別轉換函式VB.NET會自動處理兩個不同型別的資料操作,自動將兩種資料型別轉換成一樣後再執行操作。 • 自動轉換型別的缺點 讓VB.NET自動執行型別轉換可能會發生一些不可預期的結果,例如執行敘述「shtB = "100" + "10"」所的到的結果為10010而不是預期110。 Dim strA As char = "100" Dim strB As short = 10 shtB=shtB+strA ‘shtB的結果將會是110
型別轉換函式 • 型別轉換的函式: • 這些函式很好記,C是Convert轉換的意思,然後除了轉Short型別外都是加上要轉換的型別簡寫。
資料型別的轉換 • 輸入英呎及英吋,並轉換成公制單位後輸出: <html> <% Dim sngFeet, sngInches, sngCentimeters As Single sngFeet=CSng(Request("Feet")) sngInches=CSng(Request("Inches")) sngCentimeters=((sngFeet*12)+sngInches)*2.54 Response.Write(CStr(sngFeet) & " 英呎 ") Response.Write(CStr(sngInches) & " 英吋等於 ") Response.Write(CStr(sngCentimeters) & " 公分") %> </html>
Convert資料型別的轉換 • Convert物件 • 除了型別轉換函式外,.NET基底物件庫也提供了Convert類別可以將基礎型別轉換成所指定的其它基礎型別。 • 變數=Convert.To型別(欲轉換的值/變數) • Convert支援的基礎型別如下表所示:
Convert資料型別的轉換 • Convert支援的基礎型別如下表所示:
Convert資料型別的轉換 • 利用Convert物件的方法來轉換: <html> <% Dim sngFeet, sngInches, sngCentimeters As Single sngFeet=Convert.ToSingle(Request("Feet")) sngInches=Convert.ToSingle(Request("Inches")) sngCentimeters=((sngFeet*12)+sngInches)*2.54 Response.Write(Convert.ToString(sngFeet) & " 英呎 ") Response.Write(Convert.ToString(sngInches) & " 英吋等於 ") Response.Write(Convert.ToString(sngCentimeters) & " 公分") %> </html>
程序 • 程序的種類 • 「一般程序」(General Procedure) • 「事件程序」(Event Procedure) • 「屬性程序」(Property Procedure) • 一般程序一般程序有兩種,分別為Sub(副程式)以及Function(函式)。
SUB程序 • Sub • 以Sub方式寫成的程序稱為副程式,其執行完畢後沒有傳回值 , 也就是不會傳回執行的結果。 • 宣告為Public表示所有的程式都可以使用,而宣告為Private則表示只有這個網頁中的程式可以使用該程序,若沒有宣告則預設為Public。 [Public | Private] Sub 程序名稱(參數1 As 型別, …參數N) 程式碼… End Sub
SUB程序 • 被script標籤所圍起來的部分表示為程序,不管是一般程序或是事件程序都必須被script標籤所圍起來,程序只有被呼叫或是發生一件事件的時候才會被執行。 • 執行程序的時候,只要直接輸入程序的名稱並且要加上小括號即可,這個使用程序的動作為「呼叫」(Call)。 <script language="VB" runat="server"> Private Sub 程序一() 程式碼… End Sub Private Sub 程序二() 程式碼… End Sub </script>
SUB程序 <html> <% Response.Write("程序呼叫前<br>") SayHello() Response.Write("程序呼叫後") %> <script language="VB" runat="server"> Private Sub SayHello() Response.Write("Hello<br>") End Sub </script> </html>
程序參數的傳遞 • 參數的傳遞若有要一併傳送的參數,則可以在小括號內輸入。若參數為一個以上,則使用逗號來做分隔。 <html> <% SayHello("煌章") %> <script language="VB" runat="server"> Private Sub SayHello(strName As String) Response.Write("Hello, " & strName) End Sub </script> </html>
Function程序 • Function程序Function程序有「傳回值」(Return Value),也就是執行完畢後有執行結果可以接收,所以在使用Function程序時可以使用變數、物件的屬性來接收,甚至可以直接將Function程序直接拿來作為其他方法或其他Function程序的參數值。在VB.NET中不接收傳回值是被允許的。 [Public | Private] Function 程序名稱(參數1 As 型別, …) [As 傳回值資料型別] 程式碼… Return 傳回值 | 程序名稱 = 傳回值 End Function
Function程序 • Function程序也是一樣必須被Script標籤所括起來。 • Function程序一樣可以接收參數,Function程序執行後的結果可以利用Return關鍵字傳回(Return 傳回值) • 使用Return以及將傳回值指定給程序名稱這兩種傳回資料方式的差異,在於使用Return會立即跳出Function程序;而使用指定傳回值給程序名稱的方式則會繼續將Function程序執行完畢。 • Function在宣告時的敘述「[As 傳回值資料型別]」即為明確宣告其傳回值的資料型別。