ASP.NET網頁製作徹底研究

Download Report

Transcript ASP.NET網頁製作徹底研究

ASP.NET網頁製作徹底研究
參考資料:旗標出版 F8920 ASP.Net網頁製作徹底研究 陳會安
第1章 電子商務環境與
ASP.NET的環境建立
•
•
•
•
•
1-1 電子商務的基本認識
1-2 電子商務網站和網頁的基礎
1-3 如何在網路上建立電子商務
1-4 使用ASP.NET建立電子商務
1-5 建立ASP.NET的執行環境
1-1 電子商務的基本認識
• 1-1-1 電子商務的基礎
• 1-1-2 電子商務的種類
1-1-1 電子商務的基礎
• 電子商務的演進
– 「電子商務」(e-commerce)是利用Internet做生意,也就是
使用電腦在網路上進行商業交易活動,交易是建構在資訊科
技發展的Internet網路。
• 電子商務的特性
–
–
–
–
–
節省商業交易的成本。
商品資訊取得容易。
企業行銷將更加容易。
高效率上下游產業的供銷體系。
加快企業國際化的腳步。
1-1-2 電子商務的種類
• B to C型電子商務
– B to C的英文是Business to Consumer,也就是企業
對個人交易模式的電子商務。
• B to B型電子商務
– B to B的英文是Business to Business,也就是企業對
企業交易模式的電子商務。
• C to C型電子商務
– C to C的英文是Consumer to Consumer,也就是消費
者對消費者交易模式的電子商務。
• C to B型電子商務
– C to B的英文是Consumer to Business,也就是消費
者對廠商交易模式的電子商務。
1-2 電子商務網站和網頁的基
礎
• 1-2-1 網站和網頁的基本觀念
• 1-2-2 電子商務網站和網頁的設計
1-2-1 網站和網頁的基本觀念
• 「網站」(Web Site)是一種網路的新興
媒體,透過Internet全球性的網路系統,
成為即時和多媒體資訊的傳播管道。
• 「 網 頁 」 ( Web Page、Homepage、
HTML文件等)是網站重要的組成元件,
它是資訊提供的舞台,基本上網站都擁
有多頁網頁,這些網頁各司所職,以便
構成整個網站的內容。
1-2-2 電子商務網站和網頁的設
計
• 電子商務網站是Web基礎的應用程式,
網頁內容只是系統的操作介面,真正後
端支援的資料庫系統和付款機制,才是
網頁設計上挑戰。
• 網頁設計需要伺服端的ASP.NET技術,
它正是一種建立電子商務網站的最佳選
擇。
1-3 如何在網路上建立電子商
務
1-4 使用ASP.NET建立電子商
務
• 1-4-1 為什麼需要ASP.NET
建立電子商務
• 1-4-2 ASP.NET是一種完全
伺服端的技術
1-4-1 為什麼需要ASP.NET建立
電子商務
• 電子商務網站的架構可以分為前端的網
頁內容和後端資料庫系統,如下圖所示:
1-4-2 ASP.NET是一種完全伺服
端的技術
• ASP.NET屬於一種全新的伺服端技術,使用「CLR」
(Common Language Rumtime)架構的程式設計平台,
能夠在伺服端建立功能強大的Web應用程式。
1-5 建立ASP.NET的執行環境
• 1-5-1 在Windows XP安裝IIS
• 1-5-2 下載.NET Framework SDK
• 1-5-3 安裝.NET Framework SDK
1-5 建立ASP.NET的執行環境
• ASP.NET的執行環境和舊版ASP 3.0相似,
其作業系統的軟體需求如下所示:
– IIS 5以上版本的Web伺器。
– Windows 2000 Professional或Server,建議安
裝Service Pack 2。
– Windows XP Professional。
– Windows .NET Sever。
1-5-1 在Windows XP安裝IIS
• ASP.NET的執行環境需要Web伺服器,
以Windows 2000/XP來說就是「IIS」
(Internet Information Services)。
• 在Windows XP電腦安裝IIS元件前,需要
安裝TCP/IP通訊協定(預設安裝)。
• 在準備好Windows XP Professional系統光
碟。請執行「開始/控制台」指令開啟
「控制台」視窗,按兩下【新增或移除
程式】開始安裝。
1-5-2 下載.NET Framework
SDK
• ASP.NET的執行環境需要安裝.NET Framework,
分成兩種版本,可以免費下載,如下所示:
• .NET Framework Redistributable:
– 包含ASP.NET和.NET Framework,提供ASP.NET建
立Web應用程式的執行環境,通常是安裝在已經開
發完成的網站。
• .NET Framework Software Development Kit:
– 除了Redistributable套件外,還加上相關的文件、範
例和一些命令列的程式開發工具,如果準備開發
ASP.NET的Web應用程式,建議在Web伺服器安
裝.NET Framework SDK。
1-5-3 安裝.NET Framework
SDK
• 在自行下載或使用書附光碟提供的.NET
Framework SDK和Sevice Pack後,就可以
在Windows XP安裝.NET Framework
SDK :
– 首先安裝.NET Framework SDK。
– 接著安裝.NET Framework SDK Service Pack 。
第2章 HTML、XML和CSS的
基礎
•
•
•
•
•
•
•
2-1 HTML的基礎
2-2 HTML標籤
2-3 XML文件的基礎
2-4 Cascading Style Sheets
2-5 局部套用的CSS
2-6 內建網頁的CSS
2-7 使用CSS進行絕對位置的編排
2-1 HTML的基礎
• 2-1-1 第一份HTML文件
• 2-1-2 HTML文件的基本架構
• 2-1-3 Meta標籤的使用
2-1-1 第一份HTML文件-1
• 「HTML」(HyperText Markup Language)標
記語言屬於一種文件編排語言,其目的是編排
文件的內容,以便顯示漂亮的文件內容。
• Tim Berners-Lee在1991年建立HTML,在1993
年HTML1.0版由Berners-Lee和Connolly完成,
HTML只是使用SGML的慣用語法,也就是標
籤和屬性,如下所示:
– 「標籤」(Tag):HTML標籤是一個字串符號,主要是標示
需要套用編排格式的文字內容,在標籤內的文字是使用預設
格式編排。
– 「屬性」(Attribute):每一個標籤可以擁有一些屬性來定義
文字內容的細部編排。
2-1-1 第一份HTML文件-2
01: <html>
02: <head>
03: <title>Ch2-1-1.htm</title>
04: </head>
05: <body>
06: <b>From: </b>[email protected]<br>
07: <b>To: </b>[email protected]<br>
08: <b>Subject: </b>測試郵件功能<br>
09: <p>這是第一封郵件</p>
10: </body>
11: </html>
2-1-2 HTML文件的基本架構
• HTML文件標籤的基本架構,如下所示:
<html>
標示著一份HTML網頁
<head> HTML網頁的基本定義
</head>
<body> HTML網頁的內容
</body>
</html>
• HTML文件是包含於<html>和</html>標籤間的
內容和定義,其中<head>和</head>標籤包圍的
區塊定義HTML網頁的本身,網頁內容是定義
在<body>和</body>標籤間。
2-1-3 Meta標籤的使用
• <meta>標籤是位在<head>區塊,可以用來定義
HTML標籤所沒有定義的相關資訊,常用的應
用如下所示:
– 設定使用的編輯工具
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
– 設定網頁使用的語系
<meta http-equiv="Content-Type" content="text/html;
charset=big5">
– 自動更新網頁內容
<meta http-equiv="refresh" content="10,url=UsersList.aspx">
2-2 HTML標籤
•
•
•
•
•
•
•
2-2-1 HTML的標頭標籤
2-2-2 文字格式標籤
2-2-3 清單項目標籤
2-2-4 圖片和超連結標籤
2-2-5 網頁表格標籤
2-2-6 網頁表單標籤
2-2-7 框架頁標籤
2-2-1 HTML的標頭標籤
標籤
說明
<title>…</title> 網頁標題,顯示在瀏覽程式的標題列
<base>
指定基底的 URL 網址
<meta>
設定伺服端或客戶端所需的識別資訊
<link>
連結其它網頁,例如:CSS 外部樣式表檔案
2-2-2 文字格式標籤-1
標籤
說明
<hn>…</hn>
顯示粗體的標題文字,n 的值是 1~6,表示不同
的尺寸,愈小愈大
<b>…</b>
粗體字
<i>…</i>
斜體字
<u>…</u>
底線字
<s>…</s>
刪除線,在文字中間有一條線
<strike>…</strike>
刪除線,另一種刪除線
2-2-2 文字格式標籤-2
<sub>…</sub>
下標字
<sup>…</sup>
上標字
<tt>…</tt>
打字機字體
<big>…</big>
放大字體的字型
<address>…</address> 使用地址的字體
<small>…</small>
縮小字體的字型
<center>…</center>
文字內容是置中對齊
2-2-2 文字格式標籤-3
<blink>…</blink>
閃爍字
<font>…</font>
使用 face、size 和 color 屬性設定編排使用的字
體、尺寸和色彩
<basefont>
指定網頁的基本字型
<br>
強迫文字換行
<hr>
插入一條水平線
<p>…</p>
使用文字段落編排
2-2-3 清單項目標籤
標籤
說明
<ul>…</ul>
項目符號
<ol>…</ol>
項目編號
<dl>…</dl>
定義式清單
<menu>…</menu> 選單式清單
<dir>…</dir>
目錄式清單
<lh>
清單標題
<li>
清單項目
<dt>
定義式的項目名稱
<dd>
定義式的項目說明
2-2-4 圖片和超連結標籤
標籤
說明
<a>…</a>
在網頁插入超連結
<img>
在網頁插入圖片
<bgsound>
在網頁插入背景音樂
<embed>
在網頁插入 MIDI 音樂檔
<marquee>…</marquee> 跑馬燈文字
2-2-5 網頁表格標籤
標籤
說明
<table>…</table>
網頁表格
<tr>…</tr>
表格中的一列
<td>…</td>
表格中的一個儲存格
<caption>…</caption> 表格標題
2-2-6 網頁表單標籤
標籤
說明
<form>…</form>
建立表單
<input type=…>
表單輸入或選擇資料的表單欄位,包含按鈕、
文字方塊、選擇鈕和核取方塊欄位,不同 type
屬性表示不同的欄位
<select>…</select>
清單方塊或下拉式清單方塊
<option>…</option>
清單方塊的選項
<textarea>…</textarea> 文字區域
2-2-7 框架頁標籤
標籤
說明
<frameset>…</frameset>
設定網頁是一頁框架頁
<frame>
框架頁的框架分割,可分為上下或左右分割
<iframe>
網頁的內置框架,可以直接在網頁插入所需
的框架
<noframes>…</noframes> 不支援框架的瀏覽程式顯示的網頁內容
2-3 XML文件的基礎
• 2-3-1 什麼是XML
• 2-3-2 XML文件的組成
2-3-1 什麼是XML-1
• 「XML」(eXtensible Markup Language)可擴
展標示語言屬於一種標籤語言,XML 1.0版規
格在1998年2月正式推出,XML的寫法十分類
似HTML,繼承SGML自定標籤的優點,並且
刪除一些SGML複雜的部分,在功能上能夠補
足HTML標籤的不足,而擁有更多的擴充性。
• XML並不是用來編排內容,而是用來描述資料,
它並沒有如同HTML一般的預設標籤,使用者
需要自己定義描述資料所需的各種標籤。
2-3-1 什麼是XML-2
01: <?xml version="1.0" encoding="Big5"?>
02: <!--網頁製作徹底研究系列-->
03: <booklist>
04: <book>
05:
<code>F8915</code>
06:
<title>ASP網頁製作徹底研究</title>
07:
<authorlist>
08:
<author>陳會安</author>
09:
</authorlist>
10:
<price>580</price>
11: </book>
12: <book>
13:
<code>F8916</code>
14:
<title>ASP與IIS 4/5網站架設徹底研究</title>
15:
<authorlist>
16:
<author>陳會安</author>
17:
</authorlist>
18:
<price>550</price>
19: </book>
20: </booklist>
2-3-2 XML文件的組成
• XML文件基本上是由標籤和內容組成,
一共七種組成的元素可以出現在XML文
件中。
–
–
–
–
–
–
–
元素(Element)
屬性(Attribute)
實體參考(Entity Reference)
註解(Comment)
CDATA區塊(CDATA Section)與PCDATA
PI(Processing Instructions)
DTD(Document Type Declarations)
2-4 Cascading Style Sheets
• 2-4-1 CSS的基礎
• 2-4-2 CSS的基本語法
• 2-4-3 常用的CSS樣式屬性
2-4-1 CSS的基礎-1
• 「Cascading Style Sheets」簡稱CSS,中
文稱為層級式樣式表,CSS層級式樣式表
是一種樣式語言,能夠定義HTML標籤
的顯示效果。
• 瀏覽程式在解譯HTML標籤時是使用預
設顯示樣式,例如:<p>標籤是段落、
<ul>為清單項目,CSS能夠重新定義標籤
的顯示樣式。
2-4-1 CSS的基礎-2
• 如果想在網頁上使用CSS編排網頁內容,
一共有三種方式,如下所示:
– 局部套用的CSS(In-Line Style Sheets)。
– 內建網頁的CSS(Embedded Style Sheet)。
– 外部連結的CSS(External Style Sheet)。
2-4-2 CSS的基本語法
• CSS能夠針對指定標籤定義全新的樣式,
其基本語法如下所示:
Selector {property1: value1; property2: value2 }
• 選擇器Selector選擇樣式套用的標籤,大
括號括起的樣式組,就是重新定義的標
籤樣式,例如:前面的<p>標籤,如下所
示:
p { font-size: 10pt;
color: red; }
2-4-3 常用的CSS樣式屬性
• 在選擇好定義的標籤後,可以定義CSS,CSS
常用的樣式屬性分類成幾大類。
– 字型的樣式屬性
• 文字內容顯示的字型效果屬性
– 色彩和背景樣式屬性
• 標籤內容的顯示和背景色彩屬性
– 文字樣式屬性
• 文字內容的顯示屬性包含對齊、字距的屬性
– 區塊樣式屬性
• 文字內容顯示的區塊,這也包含外框顯示的屬性
– 絕對位置的樣式屬性
• 絕對位置編排,也就是可以顯示在指定的位置
2-5 局部套用的CSS
• 局部套用的CSS是直接在標籤使用style屬
性定義樣式,常用的HTML標籤有<div>、
<a>、<span>和<p>。
<div style="color: green; font-size: 24pt; margin-left: 5px">
<div style="position:absolute; top:40px; width:130px;
height:130px">
2-6 內建網頁的CSS
• 2-6-1 重設HTML標籤樣式
• 2-6-2 重新設定超連結標籤的樣式
• 2-6-3 自訂樣式名稱
2-6-1 重設HTML標籤樣式
• CSS能夠重新定義HTML標籤顯示的編排樣式,內建網
頁的CSS是將樣式定義在<body>標籤前的<style>標籤,
如下所示:
<style type="text/css">
body { font-size: 9pt;
font-family: 標楷體;
line-height: 120%;
}
span {text-transform: uppercase}
p
{ font-size: 12pt;
color: yellow;
background-color: blue;
line-height: 20px;
}
</style>
2-6-2 重新設定超連結標籤的樣
式
• 網頁超連結的顯示狀態分為多種情況,
不同狀態的超連結樣式需要分別定義,
如下所示:
<style type="text/css">
a:link {font-size: 9pt; text-decoration: none}
a:active {font-size: 9pt; text-decoration: none}
a:visited {font-size: 9pt; text-decoration: none}
a:hover {font-size: 15pt; text-decoration: underline}
</style>
2-6-3 自訂樣式名稱
• CSS允許使用者在網頁定義個人風格的樣
式名稱,樣式名稱是一個Class,以「.」
句點開始的名稱定義在<style>標籤,如
下所示:
.littlered {color: red; font-size: 9pt}
.littlegreen {color: green; font-size: 9pt}
• HTML標籤使用class屬性指定樣式名稱,
在標籤套用定義的樣式,如下所示:
<font class="littlered">Style</font>
2-7 使用CSS進行絕對位置的編
排
• CSS擁有絕對位置的定位能力,能夠讓您隨心
所欲的編排網頁元素,如下所示:
.titlered {
position: absolute;
top: 100pt;
left: 50pt;
visibility: visible;
z-index: 1;
background-color: blue;
color: yellow;
font-size: 19pt;
}
• 樣式使用絕對位置顯示元素,即absolute,其位
置是離上方邊界100像素,左邊50像素的位置。
第3章 VB.NET語法的ASP.NET
程式
•
•
•
•
•
•
•
•
3-1 VB.NET的基礎
3-2 ASP.NET程式的基本架構
3-3 VB.NET的變數與資料型態
3-4 VB.NET的運算子
3-5 VB.NET的條件敘述
3-6 VB.NET的流程控制
3-7 VB.NET的程序與函數
3-8 VB.NET的錯誤處理
3-1 VB.NET的基礎
• 3-1-1 物件的基本觀念
• 3-1-2 微軟的Basic家族
3-1-1 物件的基本觀念
• VB.NET是一種支援.NET Framework的物
件導向程式語言。
• ASP.NET 主 要 是 使 用 VB.NET 的 語 法
和.NET Framework的類別,就算讀者不
熟悉物件導向程式設計,也一樣可以使
用VB.NET撰寫ASP.NET程式。
3-1-1 物件的基本觀念-物件
• 物件(Objects)為物件導向程式的基礎,簡單
的說物件是資料(Data)和包含處理資料函式
(稱為方法)的綜合體。
• 類別(Class)是用來定義物件,使用類別建立
物件,在建立好物件後,並不用考慮物件內部
的處理方式,只需知道提供的屬性和方法和如
何使用,就可以使用這些物件。
– 例如:ASP.NET可以使用.NET Framework的類別物
件,擁有HTTP物件的Response、Server、Request、
Session和Application等物件。
3-1-1 物件的基本觀念-屬性
• 屬性(Properties)是物件的性質和狀態,
例如:Response物件的ContentType屬性,
String物件的length屬性取得字串長度等。
3-1-1 物件的基本觀念-方法
• 方法(Methods)是物件的處理函數,例
如:Response物件擁有下列的方法,如
下所示:
Response.Write()
Response.Redirect()
3-1-1 物件的基本觀念-事件
• 事件(Events)是指物件回應的事件,例
如:Page物件的Load事件,我們可以建
立處理此事件的程序,如下所示:
Sub Page_Load(sender As Object, e As Eventargs)
…….
End Sub
3-1-1 物件的基本觀念-物件集
合
• 物件集合(Collections)如同其名是一組
物件的集合
– 例如:Response物件的物件集合Cookies(通
常是使用屬性取得此物件集合),如下所示:
Response.Cookies("name").Value
• 程式碼取出物件集合中名為name的
Cookie物件,然後使用Value屬性取得其
值,Application和Session物件也都屬於物
件集合。
3-1-2 微軟的Basic家族
• 微軟Basic家族包含:
– Visual Basic 6到VB.NET
– Office家族提供VBA
– 客戶端VBScript
– 伺服端VBScript語法的ASP
– VB.NET語法的ASP.NET
3-2 ASP.NET程式的基本架構
•
•
•
•
3-2-1 建立ASP.NET程式
3-2-2 儲存ASP.NET程式
3-2-3 測試ASP.NET程式
3-2-4 VB.NET程式的基本
撰寫規格
3-2-1 建立ASP.NET程式-1
• ASP.NET程式碼位在HTML標籤中,只
需將程式碼置於「<%」和「%>」符號間
即可,如下所示:
<%………%>
• 如果在HTML文件擁有上述符號的程式
碼,此時的網頁是一個ASP.NET程式,
副檔名為.aspx,需要支援ASP.NET的
Web伺服器才能將程式碼編譯後,在瀏
覽程式顯示執行的結果。
3-2-1 建立ASP.NET程式-2
01: <%@ Page Language="VB" %>
02: <html>
03: <head>
04: <title>Ch3-2-1.aspx</title>
05: </head>
06: <body>
07: <% ' 變數宣告
08: Dim fontSize1,fontSize2, i As Integer
09: fontSize1 = 3
10: fontSize2 = 5
11: ' 設定字型尺寸由小變大
12: For i = fontSize1 To fontSize2 %>
13: <font size=<%=i%>>
14: <p>第一個ASP.NET程式</p>
15: <% Next
16: Response.Write("大家好!")
17: %>
18: </body>
19: </html>
3-2-2 儲存ASP.NET程式
• ASP.NET程式和舊版ASP相容,在同一個Web
應用程式可以執行ASP或ASP.NET程式,其差
異在:
– ASP.NET副檔名【.aspx】
– ASP副檔名是【.asp】
• Windows編輯工具【記事本】在儲存檔案時,
預設儲存的副檔名為【.txt】文字檔案。
• 只需在【存檔類型】選【所有檔案】,【檔案
名稱】欄輸入檔案全名,即含副檔名,儲存成
ASP.NET的程式檔案。
3-2-3 測試ASP.NET程式
• ASP.NET屬於伺服端網頁技術,我們需
要將程式檔案公佈到Web伺服器才能預
覽,以Windows XP Professional為例就是
IIS。
• 公佈到Web伺服器的方法:
– 公佈到Web伺服器主目錄
– 將目錄設定成Web共用
3-2-4 VB.NET程式的基本撰寫
規格-命名
• VB.NET的命名原則,如下所示:
– 不可使用VB.NET保留字或系統的物件名稱。
– 必需是英文字母或底線「_」開頭,如果以
底線開頭,至少需要一個英文字母或數字。
– 名稱長度不可超過16383個字元,不區分英
文大小寫,abc和ABC代表同一個名稱。
– 名稱中間不能有句點「.」或空白,只能是英
文字母、數字和底線。
– 在宣告的有效範圍內需唯一。
3-2-4 VB.NET程式的基本撰寫
規格-註解
• 程式註解是程式設計上很重要的部分,良好的
註解不但能夠輕易了解程式的目的,在維護上
也可以提供更多的資訊。
• VB.NET程式的註解是以REM指令或「'」符號
開始的列,或程式列上此符號之後的內容,如
下所示:
REM 變數的宣告
' 大家好
Dim size1,size2 As Integer ' 變數的宣告
3-2-4 VB.NET程式的基本撰寫
規格-太長程式碼
• 如果VB.NET的程式碼太長,基於程式編
排的需要,可以分為兩列,此時在第一
列程式碼的最後請加上「_」符號,如下
所示:
Dim size1,size2,size3,size4,size5 _
,size6,size7,size8,size9 As Integer
3-2-4 VB.NET程式的基本撰寫
規格-註解的規則
• 程序和重要變數宣告前需要註解文字說明其用
途,對於每一個程序或函數的註解,如下表所
示:
程序函數區段 說明
程序的開頭
說明程序的功用
傳入的參數
程序需要輸入的參數
傳回值
函數傳回值是什麼
前題
影響此程序的外部變數、物件和控制項
影響
此程序會影響到的外部變數、物件和控制項
3-2-4 VB.NET程式的基本撰寫
規格-程式碼格式和縮排原則
• 記得使用縮排編排程式碼,如此可以反
應出程式碼的邏輯和迴路架構,例如:
迴路區塊的程式碼縮幾格編排,如下所
示:
For i = 1 To 10 Step 1
total = total + i
Next
3-3 VB.NET的變數與資料型態
• 3-3-1 變數的資料型態
• 3-3-2 變數、常數宣告與指定敘述
• 3-3-3 陣列變數
3-3-1 變數的資料型態-1
資料型態 .NET
說明
位元組 範圍
Framework 類
別
Boolean
System.Boolean 布林值
2
True 或 False
Byte
System.Byte
正整數
1
0~255
Char
System.Char
字元
2
0~65535
Short
System.Int16
短整數
2
-32,768~32,767
Integer
System.Int32
整數
4
2,147,483,648~2,147,483,6
47
3-3-1 變數的資料型態-2
Long
System.Int64
長整數
8
9,223,372,036,854,775,808
~9,223,372,036,854,775,80
7
Single
System.Single
值
單精度的4
負
範
圍
浮點數
3.4028235E+38~-
為
-
1.401298E-45 , 正 值 的 範
圍
為
1.401298E-
45~3.4028235E+38
3-3-1 變數的資料型態-3
Double
System.Double 雙 精 度 的 8
浮點數
負
值
範
圍
為
-
1.79769313486231570E+3
08~4.94065645841246544E324 , 正 值 範 圍 為
4.94065645841246544E324~1.7976931348623157
0E+308
3-3-1 變數的資料型態-4
Decimal
System.Decimal 數值
16
0~+/79,228,162,514,264,337,59
3,543,950,335 沒有小數,
0~+/7.922816251426433759354
3950335 帶 28 位小數,最
小 的 非 零 值 為 +/0.000000000000000000000
0000001(+/-1E-28)
3-3-1 變數的資料型態-5
Date
System.DateTim 日期
8
0001 年 1 月 1 日~9999 年
12 月 31 日
e
String
System.String
字串
依平台 0~2 百萬 Unicode 字元
Object
System.Object
物件
4
物件型態變數可以儲存各
種資料型態的值
3-3-2 變數、常數宣告與指定敘
述-變數宣告
• VB.NET的變數是使用【Dim】指令進行宣告,
如下所示:
Dim size ' 變數size的資料型態是Object
• 上述程式碼宣告一個變數,因為沒有指定資料
型態,預設的資料型態為Object,可以儲存各
種資料型態的值。
• 如果宣告的變數需要指料型態,我們需要使用
As指令宣告變數的資料型態,如下所示:
Dim size1,size2 As Integer ' 變數size1和size2都是Integer資料型態
• 上述程式碼宣告兩個整數資料型態的變數。
3-3-2 變數、常數宣告與指定敘
述-變數初值
• 如果需要,我們還可以在宣告時同時指
定變數的初值,如下所示:
Dim name As String ,size3 As Integer = 100 ' 指定變數size3的初值
• 上述程式碼指定變數size3的初值為100。
3-3-2 變數、常數宣告與指定敘
述-常數宣告
• VB.NET本身擁有內建常數,不過使用者
也可以使用Const指令建立常數,常數在
宣告時同時需要指定其值,如下所示:
Const MAX_SIZE = 100
• 上述常數值為數值的100。
3-3-2 變數、常數宣告與指定敘
述-指定敘述
• VB.NET的變數可以使用指定敘述指定變
數值,也就是「=」等號運算子,如下所
示:
size = 3
name = "陳會安"
• 上述程式碼指定變數值,這些變數需要
是宣告為整數和字串型態的變數。
3-3-3 陣列變數-宣告
• VB.NET陣列同樣使用【Dim】指令宣告,我們
可以在宣告時同時指定陣列的尺寸,一維陣列
的宣告,如下所示:
Dim arraySize(5) As Integer
• 上述指令宣告的一維陣列,括號的值是陣列最
大的索引,所以是0~5一共有六個元素。
• 宣告多維陣列,如下所示:
Dim arraySize(5, 5) As Integer
• 上述程式碼宣告一個6x6的二維陣列,使用逗
號分隔的是各維陣列的尺寸。
3-3-3 陣列變數-初值
• 在宣告陣列時指定陣列的初值,如下所示:
Dim arraySize() As Integer = {1, 2, 3, 4, 5, 6}
• 上述指令宣告的一維陣列並沒有指定尺寸,其
尺寸是初值的個數,陣列索引的最大值是初值
個數減一。
• 我們也可以使用指定敘述指定陣列值,如下所
示:
arraySize(0) = 1
arraySize(1) = 2
…….
arraySize(4) = 5
arraySize(5) = 6
3-3-3 陣列變數-調整陣列尺寸
• VB.NET的陣列可以使用【ReDim】指令在程
式執行時重新指定其尺寸,不過ReDim指令並
不可以宣告陣列,只能更改陣列尺寸,如下所
示:
ReDim arraySize(6)
• 上述程式碼將前面的arraySize陣列尺寸改為6。
• VB.NET的陣列在變更陣列尺寸後,會遺失陣
列資料,如果陣列已經擁有內容,請使用
Preserve指令保留原陣列的內容,如下所示:
ReDim Preserve arraySize(10)
3-4 VB.NET的運算子
•
•
•
•
•
3-4-1 運算子的優先順序
3-4-2 算術與字串連結運算子
3-4-3 比較運算子
3-4-4 邏輯運算子
3-4-5 指定運算子
3-4 VB.NET的運算子
• VB.NET指定敘述的等號右邊如果是運算式或
條件運算式,這些運算式都是運算子和運算元
組成,VB.NET擁有完整的算術、比較、連結
和邏輯運算子,如下所示:
A+B-1
A >= B
A < B And A > 1
• 上述運算式的A、B變數和數值1是運算元,+、
-、<、>=和>為運算子。
3-4-1 運算子的優先順序-1
• VB.NET提供多種運算子,如果在同一個運算
式使用多種運算子,為了讓運算式能夠得到相
同的結果,運算式使用運算子預設的優先順序
進行運算,其優先順序如下所示:
– 如果運算子沒有優先順序的差異,運算式依
照出現的順序,由左到右依序執行。
– 括號內比括號外的先執行,括號的目的是為
了推翻現有的優先順序,在括號內依照正常
的優先順序。
3-4-1 運算子的優先順序-2
– 當運算式擁有多種運算子時,算術運算子最
先,接著是比較運算子,最後才是邏輯運算
子,如下所示:
算術運算子 > 比較運算子 > 邏輯運算子
– 比較運算子擁有相同的優先順序。
– 算術運算子的加和減法優先順序相同,乘和
除法擁有相同的優先順序,不過乘除高於加
減,如下所示:
^指數 > (-)負號 > */乘除 > \整數除法 > Mod > +-加減 > &
• 邏輯運算子的優先順序,如下所示:
3-4-2 算術與字串連結運算子
運算子
說明
運算式範例
^
指數
5 ^ 2 = 25
-
負號
-7
*
乘法
5 * 6 = 30
/
除法
7 / 2 = 3.5
\
整數除法
7\2=3
Mod
餘數
7 mod 2 = 1
+
加法
4+3=7
-
減法
&
字串連結
4–3=1
"ab" & "cd" = "abcd"
3-4-3 比較運算子
運算子
說明
運算式範例
結果
=
等於
6=3
False
<>
不等於
6 <> 3
True
<
小於
6<3
False
>
大於
6>3
True
<=
小於等於
6 <= 3
False
>=
大於等於
6 >=3
True
Is
物件比較
比較兩個變數是否指向同一個物件
Like
字串比教
使用正規語言的字串比較
3-4-4 邏輯運算子-說明
運算子
說明
Not
非,傳回運算元相反的值,通常配合運算式的布林值
And
且,連結的兩個運算元都為 True,則運算式為 True
Or
或 , 連 結 的 兩 個 運 算 元 中 , 任 一 個 為 Ture , 則 運 算 式 為
True,否則為 False
Xor
連結的兩個運算元中,只有一個運算元為 True 且兩個運算元
不同時為 True,則運算式為 True,否則為 False
AndAlso 兩個運算元都為 True 才為 True ,如果第一個運算元已經
False,就不用計算第二個運算元,傳回 False
OrElse
連結的兩個運算元中,任一個為 Ture,則運算式為 True,否
則為 False,如果第一個為 True,就不用計算第二個運算元,
傳回 True
3-4-4 邏輯運算子-範例
邏輯運算子
運算式範例
結果
Not A
Not (5 > 3)
False
Not B
Not (4 <= 2)
True
A And B
5 > 3 And 4 <= 2
False
A Or B
5 > 3 Or 4 <= 2
True
A Xor B
5 > 3 Xor 4 <= 2
True
A AndAlso B 5 > 3 AndAlso 4 <= 2 False
A OrElse B
5 > 3 OrElse 4 <= 2
True ,以此例第二個運算元根本不
用計算
3-4-5 指定運算子
運算子
範例
相當的運算式
說明
=
x=y
^=
x ^= y
x=x^y
指數
+=
x += y
x=x+y
數字相加
-=
x -= y
x=x-y
減法
*=
x *= y
x=x*y
乘法
/=
x /= y
x=x/y
除法
\=
x \= y
x=x\y
整數除法
&=
x &= y
x=x&y
字串連結
指定敘述
3-5 VB.NET的條件敘述
• 3-5-1 是否選和二選一
• 3-5-2 多選一的條件敘述
3-5-1 是否選和二選一-If...Then
• If Then條件敘述只是決定是否執行區塊內的程
式碼,如果If條件為True,就執行Then...End If
間的程式碼,如下所示:
If value > 0 Then
Response.Write("陳會安<br>")
End If
• 如果If條件True時只會執行一列程式碼,我們
還可以省簡掉End If,如下所示:
If value > 0 Then Response.Write("陳會安<br>")
3-5-1 是否選和二選一If...Then...Else
• If Then條件如果擁有排它性的兩個執行區塊,
需要二選一,只需加上Else指令,If條件為True
時執行Then...Else間的程式碼,False執行
Else...End If間的程式碼,如下所示:
If value < 10 Then
Response.Write("陳會安<br>")
Else
Response.Write("江小魚<br>")
End If
3-5-2 多選一的條件敘述-If
Then ElseIf
• If Then ElseIf條件敘述是If Then條件敘述的延
伸,使用ElseIf指令建立多選一的條件,如下:
If dayValue = 1 Then
Response.Write("星期日<br>")
ElseIf dayValue = 2 Then
Response.Write("星期一<br>")
ElseIf dayValue = 3 Then
Response.Write("星期二<br>")
…….
ElseIf dayValue = 7 Then
Response.Write("星期六<br>")
Else
Response.Write("無法分辨是星期幾<br>")
End If
3-5-2 多選一的條件敘述-Select
Case
• Select Case多選一條件敘述比較清楚明白,撰
寫的程式碼也比較簡潔,可以依照符合的條件
執行不同區塊的程式碼,如下所示:
Select Case dayValue
Case 1: Response.Write("周日假期<br>")
Case 2, 3, 4 To 6
Response.Write("工作天<br>")
Case 7: Response.Write("周末假日<br>")
Case Else
Response.Write("無法分辨是星期幾<br>")
End Select
3-6 VB.NET的流程控制
• 3-6-1 For…Next迴路
• 3-6-2 Do/While...Until/Loop迴路
3-6-1 For…Next迴路For...Step…Next
• For...Step…Next指令敘述執行的迴路是固定次
數,以Step值來增加或減少,如果Step為1可以
省略Step,例如:使用For Next迴路,每次增加
1,執行1到10次相加的迴路,如下所示:
Dim i, total As Integer
For i = 1 To 10 Step 1
total += i
Next
• 如果使用負數的Step,如下所示:
For i = 10 To 1 Step -1
total += i
Next
3-6-1 For…Next迴路-For
Each…In…Next
• For Each迴路和For Next迴路敘述十分相似,只
不過這種迴路通常是使用在物件和物件的資料
集合,可以顯示集合中的所有元素,特別適合
那些不知道有多少元素的物件,如下所示:
Dim objName As New ArrayList
Dim name As String
objName.Add("陳會安")
objName.Add("江小魚")
objName.Add("張無忌")
For Each name In objName
Response.Write(name & "<br>")
Next
3-6-2 Do/While...Until/Loop迴路
-While當條件成立
• Do Loop迴路如果使用While條件,條件
是在迴路開頭檢查,如下所示:
Dim total As Integer = 0
Dim counter As Integer = 1
Do While counter <=10
total += counter
counter += 1
Loop
3-6-2 Do/While...Until/Loop迴路
-Until直到條件成立
• Do Loop迴路如果使用Until條件,結束條
件是在迴路尾檢查,如下所示:
Dim total As Integer = 0
Dim counter As Integer = 1
Do
total += counter
counter += 1
Loop Until counter > 10
3-6-2 Do/While...Until/Loop迴路
-While…End While
• While…End While是VB 6的While…Wend
迴路,這是一種在迴路開頭檢查的迴路,
從1加到10的程式碼,如下所示:
Dim total As Integer = 0
Dim counter As Integer = 1
While counter <=10
total += counter
counter += 1
End While
3-7 VB.NET的程序與函數
• 3-7-1 程序與函數
• 3-7-2 變數的有效範圍與參數的傳遞
3-7-1 程序與函數-Sub副程序
• Sub程序是一個區塊的VB.NET程式碼,使用
Sub和End Sub包圍,程序並沒有傳回值,如下
所示:
Sub addOne2N(maxValue As Integer)
Dim total As Integer = 0
Dim counter As Integer = 1
While counter <= maxValue
total += counter
counter += 1
End While
Response.Write(...“的總合: ” &_total & "<br>")
End Sub
3-7-1 程序與函數-Function函數
• Function函數是使用Function和End
Function包圍,函數有傳回值,傳回的方
式是使用Return指令,如下所示:
Function addTen()
Dim i, total As Integer
For i = 1 To 10 Step 1
total += i
Next
Return total
End Function
3-7-1 程序與函數- Call指令呼
叫程序與函數
• 呼叫函數或副程序,正確的說只有呼叫
程序才會用到Call,如下所示:
Call addOne2N(5)
addOne2N(100)
• 函數擁有傳回值,通常都使用在運算式
的指定敘述,位在指定敘述的右邊,如
下所示:
total = addTen()
3-7-2 變數的有效範圍與參數的
傳遞-範圍
• VB.NET變數的有效範圍,如下所示:
– 區塊變數範圍(Block Scope):使用End、Loop和
Next結束的流程控制屬於一個程式區塊,在程式區
塊內宣告的變數,只能在區塊內使用,如果在區塊
外就不能使用。
– 區域變數範圍(Local Scope):程序和函數內宣告
的變數,變數只能在此程序或函數間使用,稱為區
域變數。
– 全域變數範圍(Global Scope):如果變數是在程序
和函數外宣告,在程式的各程序和函數都可以使用
此變數,稱為全域變數。
3-7-2 變數的有效範圍與參數的
傳遞-參數傳遞
• 在程序和函數傳入參數的傳遞方式分為
兩種,如下所示:
– ByVal傳值呼叫:只將變數的值傳入程序或
函數,並不會更改變數值。
– ByRef傳址呼叫:將變數實際儲存的位置傳
入,所以會更改變數值。
3-8 VB.NET的錯誤處理-結構
• VB.NET提供更結構化的錯誤處理敘述,
即Try End Try,如下所示:
Try
' 測試的錯誤程式碼
………………
Catch e As Exception
' 錯誤處理的程式碼
………………
Finally
……………
End Try
3-8 VB.NET的錯誤處理-說明
• 錯誤處理敘述可以分為三個部分,如下所示:
– Try程式區塊:在Try和Catch指令間的程式區塊是
VB.NET需要錯誤處理的程式碼。
– Catch程式區塊:如果Try程式區塊的程式碼發生錯
誤,在Catch到Finally指令間的程式區塊將會傳入參
數e的Exception例外物件,可以顯示錯誤資訊,或
是建立錯誤處理的補救程式碼。
– Finally程式區塊:這是選擇性的程式區塊,不論錯
誤是否產生,都會執行此區塊的程式碼,通常是用
來善後的程式碼,例如:關閉資料庫連結。
第4章 .NET Framework類別函
式庫的使用
•
•
•
•
•
•
•
4-1 .NET Framework的基礎
4-2 System.String字串類別
4-3 System.DateTime日期時間類別
4-4 System.Math數學類別
4-5 System.Random亂數類別
4-6 System.Array陣列類別
4-7 System.Collections集合類別
4-1 .NET Framework的基礎
• 4-1-1 再談.NET Framework
• 4-1-2 在ASP.NET使用.NET Framework的
類別
4-1-1 再談.NET Framework-1
• . NET Framework 的 應 用 程 式 開 發 可 以 解 決
Windows 程 式 開 發 的 問 題 , 因 為 它 是 使 用
Common Language Runtime(CLR) 和 . NET
Framework類別函式庫來執行程式,如下:
4-1-1 再談.NET Framework-2
• .NET Framework支援的程式語言都使用相同
的.NET Framework類別函式庫,這是一個稱為
Namespace名稱空間的階層類別架構,每一個
名稱空間可以擁有無限制的類別,如下圖所示:
4-1-2 在ASP.NET使用.NET
Framework的類別
• 如果不屬於ASP.NET預設匯入的名稱空間,我
們需要使用Import的指引指令匯入所需的名稱
空間,如下所示:
<% @ Import Namespace = "System.Data" %>
<% @ Import Namespace = "System.Data.Oledb" %>
• 上述指令的Namespace屬性可以指令匯入的名
稱空間,以此例是匯入System.Data和
System.Data.Oledb的名稱空間。
4-2 System.String字串類別
•
•
•
•
•
•
4-2-1 字串長度與大小寫轉換
4-2-2 子字串的搜尋
4-2-3 插入、刪除和取代子字串
4-2-4 字串的比較
4-2-5 字串資料的轉換
4-2-6 StringBuilder類別
4-2 System.String字串類別
• VB.NET的String資料型態是對應.NET
Framewok的System.String類別,如下所示:
Dim str As String = "ASP.NET網頁製作徹底研究"
Dim str1 As String
str1 = "ASP.NET網頁製作徹底研究"
• 上述程式碼使用String資料型態建立str和str1字
串物件,並且指定字串內容,然後我們可以使
用System.String類別的相關方法(Method)和
屬性(Properties)來處理字串。
4-2-1 字串長度與大小寫轉換
屬性
說明
Length 取得字串長度,擁有多少個字元或中文字
方法
說明
ToLower() As String 將字串的英文字母轉換成小寫字母
ToUpper() As String 將字串的英文字母轉換成大寫字母
4-2-2 子字串的搜尋
方法
說明
IndexOf(String) As Integer
傳回第一次搜尋到字串的索引位置,如果沒
有找到傳回-1
傳回反向從最後一個字元開始搜尋到字串的
LastIndexOf(String) As Integer
索引位置,如果沒有找到傳回-1
IndexOf(String, Integer) As Integer
傳回第一次搜尋到字串的索引位置,如果沒
有找到傳回-1,傳入的參數 String 為搜尋字
串,Integer 為開始搜尋的索引位置
LastIndexOf(String,
Integer
Integer)
As 如同上一個 indexOf()方法,不過是從尾搜尋
到頭的反向搜尋
4-2-3 插入、刪除和取代子字串
方法
說明
Insert(Integer, String) As String
在第一個參數 Integer 的索引位置插入第二個參
數的字串
Remove(Integer, Integer) As String
從第一個參數開始,刪除第二個參數的字元數
Replace(Char, Char) As String
將字串中所有找到的第一個參數 Char 取代成
為第二個參數的 Char
Substring(Integer) As String
從參數 Integer 開始取出剩下字元的字串
Substring(Integer, Integer) As String 取出第一個參數 Integer 到第二個參數 Integer
長度的子字串
String.Concat(String,
String)
As 將參數的兩個 String 字串結合在一起
String
Trim() As String
刪除字串前後的空白字元
TrimEnd() As String
刪除字串後的空白字元
4-2-4 字串的比較
方法
說明
CompareTo(String) As Integer
比較兩個字串內容,傳 回值是整數, 0 表示相
等, >0 表示參數的字串比較大, <0 表示參數的
字串比較小
Equals(Object) As Boolean
比較兩個字串是否相等,傳回值 True 表示相等,
Flase 表示不相等,參數不一定是 String 字串物
件,也可以使用在其它物件
EndsWith(String) As Boolean
比較字串的結尾是否為參數的字串,傳回值 True
表示是,False 表示否
StartsWith(String) As Boolean
比較字串的開始是否為參數的字串,傳回值 True
表示是,False 表示否
4-2-5 字串資料的轉換-1
方法
說明
ToString() As String
將其它資料型態轉換成字串
Split(Char) As String()
將字串使用參數 Char 的分隔字元轉換成字串陣列
Convert.ToChar(String) As Char
將參數的字串轉換成字元
Convert.ToInt16(String) As Short
將參數的字串轉換成短整數
Convert.ToInt32(String) As Integer 將參數的字串轉換成整數
Convert.ToInt64(String) As Long
將參數的字串轉換成長整數
4-2-5 字串資料的轉換-2
Convert.ToDecimal(String) As Decimal
將參數的字串轉換成數值
Convert.ToSingle(String) As Single
將參數的字串單精度的浮點數
Convert.ToDouble(String) As Double
將參數的字串雙精度的浮點數
Convert.ToBoolean(String) As Boolean
將參數的字串轉換成布林
4-2-6 StringBuilder類別-說明
• StringBuilder類別屬於System.Text的名稱空間,
這是一種允許更動字串內容的物件,可以使用
Append、Insert、Remove和Replace方法處理字
串內容,如下所示:
Dim builder as StringBuilder = New StringBuilder("ASP網頁製作", 10)
• 上述程式碼使用New運算子,以StringBuilder()
「建構子」(Constructor)建立StringBuilder物
件builder,第一個參數是字串內容,第二個參
數是StringBuilder物件的容量。
4-2-6 StringBuilder類別-屬性
屬性
說明
Capacity
取得或設定 StringBuilder 物件可以容納的最大字元數
Length
取得或設定 StringBuilder 物件的字串長度,如果設定的長度比實
際的小,就是剪裁字串
MaxCapacity 取得 StringBuilder 物件可以容納的最大字元數
4-2-6 StringBuilder類別-方法
方法
說明
EnsureCapacity(Integer) As Integer
設定 StringBuilder 物件的容量成為參數的
最少容量
Append(Type) As StringBuilder
在 StringBuilder 物件新增字串,參數 Type
可以是 VB.NET 的基本資料型態
Insert(Integer, Type) As StringBuilder
在 StringBuilder 物件參數 Integer 位置插入
參 數 Type 的 字 串 , 參 數 Type 可 以 是
VB.NET 的基本資料型態
4-2-6 StringBuilder類別-方法
Remove(Integer,
Integer)
As 從 StringBuilder 物件第一個參數 Integer 位
StringBuilder
置開始,刪除第二個參數長度的字串
Replace(Type, Type) As StringBuilder
將 StringBuilder 物件第一個參數取代成第
二 個 參 數 , 參 數 Type 可 以 是 Char 或
String
ToString() As String
將 StringBuilder 物件轉換成字串 String
ToString(Integer, Integer) As String
從 StringBuilder 物件第一個參數 Integer 位
置開始,將第二個參數長度的內容轉換成
字串 String
4-3 System.DateTime日期時間
類別
• 4-3-1 取得日期和時間
• 4-3-2 調整日期與時間
• 4-3-3 輸出日期與時間
4-3 System.DateTime日期時間
類別
• System.DateTime物件是對應VB.NET的Date資
料型態,可以取得電腦系統的時間和日期和處
理轉換成所需的日期/時間資料,如果我們需要
建立DateTime物件,可以使用New運算子,如
下所示:
Dim aDay As DateTime = New DateTime(2002, 5, 20, 22, 35, 25)
• 上述程式碼使用DateTime()建構子建立
DateTime物件,其參數依序為年、月、日、小
時(24制)、分、千分之一秒。
4-3-1 取得日期和時間-1
屬性
說明
Now
取得目前電腦系統日期時間資料的 DateTime 物件
UtcNow
取得目前電腦系統 UTC 日期時間資料的 DateTime 物件
Date
取得物件的日期資料
Day
取得是當月幾號,從 1~31
DayOfWeek 取得物件的日期資料是星期幾,從 0 表示星期天開始,依序從 1 到
6,是指星期一到星期六
DayOfYear 取得物件日期是一年中的第幾天,從 1~366(閏年)
Today
取得目前的日期
4-3-1 取得日期和時間-2
Month
取得是當年的幾月,從 1~12
Year
取得物件日期資料的年份,從 1~9999
TimeOfDay 取得物件的時間資料
Hour
取得物件時間資料的小時,從 0~23
Millisecond 取得物件時間資料以千分之一秒為單位的秒數,從 0~999
Minute
取得物件時間資料的分鐘,從 0~59
Second
取得物件時間資料的秒數,從 0~59
Ticks
以 100-nanosecond 為單位計算從 0001 年 1 月 1 日 12:00 A.M 開始
的時間
4-3-2 調整日期與時間-1
方法
說明
AddDays(Double) As DateTime
調整參數的日期數,正值為新增,負值表
示減少,如果有小數以一天 24 小時的比
例計算
AddMonths(Integer) As DateTime
調整參數的月數,正值為新增,負值表示
減少
AddYears(Integer) As DateTime
調整參數的年數,正值為新增,負值表示
減少
AddHours(Double) As DateTime
調整參數的時,正值為新增,負值表示減
少,如果有小數以 60 分鐘的比例計算
4-3-2 調整日期與時間-2
AddMinutes(Double) As DateTime
調整參數的分,正值為新增,負值表示減
少,如果有小數以 60 秒的比例計算
AddSeconds(Double) As DateTime
調整參數的秒,正值為新增,負值表示減
少,如果有小數以 1000 個千分之一秒的
比例計算
AddMilliseconds(Double) As DateTime 調整參數千分之一的秒數,正值為新增,
負值表示減少,如果有小數以 10000 個
Ticks 的 比 例 計 算 ( 1 千 分 之 一 秒
=10000Ticks)
AddTicks(Long) As DateTime
調整參數的 Ticks 數,正值為新增,負值
表示減少
IsLeapYear(Integer) As Boolean
檢查 4 位數參數是否為閏年,傳回值 True
表是是閏年,False 為不是
4-3-3 輸出日期與時間
方法
說明
ToString()
轉換成完整的日期/時間字串
ToShortDateString()
轉換成短日期的字串,其格式 yyyy/mm/dd
ToLongDateString()
轉換成長日期的字串
ToShortTimeString() 轉換成短時間的字串,沒有秒數
ToLongTimeString()
轉換成長時間的字串
4-4 System.Math數學類別
• 4-4-1 四捨五入、絕對值、最大和最小值
• 4-4-2 Math類別的數學常數和方法
4-4-1 四捨五入、絕對值、最大
和最小值
方法
說明
Max(Type, Type) As Type
傳回兩個參數中的最大值,Type 是資料型態,可以是
Byte 、 Decimal 、 Double 、 Single 、 Short 、 Integer 和
Long 等
Min(Type, Type) As Type
傳回兩個參數中的最小值,可以使用的 Type 同 Max()
Abs(Type) As Type
傳回 絕 對 值, Type 是資 料型態 ,可 以是 Decimal 、
Double、Single、Short、Integer 和 Long 等
Ceiling(Double) As Double
傳回 Double 值大於或等於參數的最小 Double 整數
Floor(Double) As Double
傳回 Double 值小於或等於參數的最大 Double 整數
Round(Decimal) As Decimal 將 Double 或 Decimal 參數值四捨五入後傳回整數部分
Round(Double) As Double
Round(Decimal, Integer) As 將 Double 或 Decimal 參數值四捨五入後傳回,參數
Decimal
Round(Double, Integer) As Interger 表示小數位數
Double
4-4-2 Math類別的數學常數
常數 說明
E
自然數 e= 2.7182818284590452354
PI
圓周率π = 3.14159265358979323846
4-4-2 Math類別的數學方法-1
方法
說明
Acos(Double) As Double
反餘弦函數
Asin(Double) As Double
反正弦函數
Atan(Double) As Double
反正切函數
Atan2(Double1,
Double2)
Double
Cos(Double) As Double
As 參數 Double1/Double2 的反正切函數值
餘弦函數
Exp(Double) As Double
自然數的指數 ex
Log(Double) As Double
Log10(Double) As Double
自然對數,Log10 是以 10 為底
4-4-2 Math類別的數學方法-2
Pow(Double, Double) As Double
傳回第一個參數為底,第二個參數的次方值
Sign(Type) As Integer
傳回參數值的符號,傳回值-1 表示小於 0,0 等
於 0 , 1 大 於 0 , Type 可 以 是 Decimal 、
Double、Single、Integer、Short 和 Long 等
Sin(Double) As Double
正弦函數
Sqrt(Double) As Double
傳回參數的平方根
Tan(Double) As Double
正切函數
4-5 System.Random亂數類別-物
件
• 在ASP.NET程式使用亂數是使用.NET
Framework的System.Random類別,首先
需要建立Random物件,如下所示:
Dim num As Random = New Random()
• 上述程式碼使用New運算子,以Random()
建構子建立Random物件num。
4-5 System.Random亂數類別-方
法
方法
說明
Next() As Integer
傳回一個整數的亂數,範圍是 0~ 2,147,483,647
Next(Integer) As Integer
傳回一個小於參數 Integer 的整數亂數
Next(Integer1,
Integer
Integer2)
As 傳回在參數 Integer1 和 Integer2 之間,但是小於
Integer2 的整數亂數
NextDouble() As Double
傳回 0.0~1.0 的 Double 值亂數
NextBytes(Byte()) As Double
將參數 Byte 陣列填入亂數,其範圍是 0~255
4-6 System.Array陣列類別
• 4-6-1 取得陣列資訊
• 4-6-2 陣列的搜尋、排序、反轉和複製
4-6 System.Array陣列類別
• 在 VB.NET 宣 告 的 陣 列 是 對 應
System.Array物件,只需建立好陣列物件,
我們可以使用System.Array類別的屬性和
方法取得陣列資訊和處理陣列元素的搜
尋、排序、複製和反轉。
4-6-1 取得陣列資訊
屬性
說明
Length
傳回陣列的元素個數,包含所有的維度的陣列
Rank
傳回陣列的維度
方法
說明
GetLength(Integer) As Integer
傳回參數維度的陣列元素個數,維度值從
0 開始
GetLowerBound(Integer) As Integer
傳回參數指定維度陣列的最小索引值
GetUpperBound(Integer) As Integer
傳回參數指定維度陣列的最大索引值
4-6-2 陣列的搜尋、排序、反轉
和複製
方法
BinarySearch(Array,
Integer
說明
Object)
As 使用二元搜尋法搜尋已經排序的一維陣列,傳回
值小於 0 表示沒有找到,找到就傳回陣列索引
IndexOf(Array, Object) As Integer
搜尋一維陣列傳回第一個找到 Object 的索引值
LastIndexOf(Array, Object) As Integer 從尾開始搜尋一維陣列,傳回第一個找到 Object
的索引值
Sort(Array)
排序陣列
Reverse(Array)
反轉陣列元素排列的順序
Copy(Array1,
Integer1,
Integer2, Integer3)
Array2, 從 Array1 的陣列索引 Integer1 開始,複製到
Array2 的 陣 列 索 引 Integer2 開 始 , 長 度 為
Integer3
4-7 System.Collections集合類別
•
•
•
•
4-7-1 ArrayList類別
4-7-2 Hashtable類別
4-7-3 Queue和Stack類別
4-7-4 IEnumerator介面
4-7 System.Collections集合類別
• 目前的程式語言都會提供物件處理一些不定元
素數的資料(類似動態陣列),稱為「集合物
件」(Collections),這種物件讓程式設計者
不用考慮記憶體配置的問題,只需使用其方法
就可以新增、刪除和插入集合物件中的元素。
• 在.NET Framework的集合類別是名為
System.Collections的名稱空間,提供數種集合
類別ArrayList、Hashtable、Queue和Stack等,
可以用來儲存Object資料型態的元素,也就是
各種VB.NET的基本資料型態。
4-7-1 ArrayList類別
• ArrayList物件儲存元素的方式類似陣列,元素
是以索引方式順序的儲存,我們只需將元素新
增或插入ArrayList物件,並不用事先宣告物件
的尺寸,建立物件的方式,如下所示:
Dim names As ArrayList = New ArrayList()
• 上述程式碼使用建構子建立ArrayList物件,然
後使用物件的屬性和方法存取物件的元素。
4-7-1 ArrayList類別-屬性
• ArrayList物件的相關屬性,如下表所示:
屬性
說明
Count
取得 ArrayList 物件的元素數
4-7-1 ArrayList類別-方法
方法
說明
Add(Object) As Integer
新增參數 Object 到 ArrayList 物件,傳回新增位置的索
引,位置從 0 開始
Insert(Integer, Object)
在參數 Integer 的位置插入參數 Object 的元素
Remove(Object)
從 ArrayList 物件刪除參數 Object 的元素
RemoveAt(Integer)
從 ArrayList 物件刪除參數 Integer 位置的元素
Clear()
刪除 ArrayList 物件的所有元素
IndexOf(Object)
Integer
As 在 ArrayList 物件搜尋參數 Object 的元素,傳回值是元素
的位置,如果沒有找到傳回-1
4-7-2 Hashtable類別
• Hashtable物件新增的元素自動以Key值的英文
字母順序進行排序,需要使用建構子建立
Hashtable物件,如下所示:
Dim users As Hashtable = New Hashtable()
• 在建立好Hashtable物件users後,就可以使用
Add方法新增元素,如下所示:
users.Add("hueyan", "陳會安")
users.Add("jane", "江小魚")
users.Add("joe", "陳小安")
users.Add("tom", "張無忌")
• 上述Add方法擁有兩個參數,第一個是Key值,
第二個是儲存的值。
4-7-2 Hashtable類別-屬性
屬性
說明
Count
取得 Hashtable 物件的元素數
Keys
取得 Key 值的物件集合
Values
取得 Value 值的物件集合
4-7-2 Hashtable類別-方法
方法
說明
Add(Object, Object)
新增第一個參數 Object 的 Key 值和第二個參數
Object 的 Value 值到 Hashtable 物件
Remove(Object)
從 Hashtable 物件刪除 Key 值為參數 Object 的元素
Clear()
刪除 Hashtable 物件的所有元素
ContainsKey(Object) As Boolean
檢查 Hashtable 物件是否擁有參數 Object 的 Key
值,如果有,傳回 True
ContainsValue(Object) As Boolean 檢查 Hashtable 物件是否擁有參數 Object 的 Value
值,如果有,傳回 True
4-7-3 Queue類別
• 佇列是一種資料結構,其用途主要是作
為資料儲存的緩衝區,佇列資料結構擁
有兩種特性,如下所示:
– 從佇列的一端存入資料,從另一端讀取資料。
– 資料存取的順序是先進先出(First In, First
Out),也就是先存入佇列的資料,先行取
出。
4-7-3 Stack類別
• 堆疊是一種和佇列相似的資料結構,堆
疊資料結構也擁有兩種特性,如下所示:
– 只允許從堆疊的頂端存取資料。
– 資料存取的順序是後出先進(Last Out, First
In),也就是後存入堆疊的資料,反而先行
取出。
4-7-3 Queue/Stack物件的相關屬
性
屬性
說明
Count
取得 Queue/Stack 物件的元素數
4-7-3 Queue/Stack物件的相關方
法
方法
說明
Enqueue(Object)
新增參數 Object 到 Queue 物件
Dequeue() As Object
從 Queue 物件取出 Object 元素
Push(Object)
新增參數 Object 到 Stack 物件
Pop() As Object
從 Stack 物件取出 Object 元素
Clear()
刪除 Queue/Stack 物件的所有元素
Contains(Object) As Boolean 檢查 Queue/Stack 物件是否擁有參數 Object ,如果
有,傳回 True
Peek() As Object
傳回 Queue/Stack 物件的第一個元素,但是並不會刪
除第一個元素
4-7-4 IEnumerator介面
• IEnumeration介面屬於System.Collections介面,
因為Collections物件都已經實作IEnumeration介
面 , 所 以 可 以 使 用 GetEnumerator 方 法 取 得
Collections物件的IEnumeration物件,如下所示:
• 例如:ArrayList物件names可以取得
IEnumerator物件,如下所示:
Dim enum1 As IEnumerator = names.GetEnumerator()
• 上述程式碼是將ArrayList物件的元素轉換成
IEnumerator物件,只需呼叫MoveNext方法就可
以取得下一個元素。
4-7-4 IEnumerator介面-屬性
屬性
說明
Current
取得 Collection 物件目前的元素
Key
此為 IDictionaryEnumerator 的屬性,可以取得 Hashtable 物件的 Key
值
Value
此為 IDictionaryEnumerator 的屬性,可以取得 Hashtable 物件的
Value 值
4-7-4 IEnumerator介面-方法
方法
說明
MoveNext() As Boolean
取得下一個元素,傳回值 true 表示有,false 表示沒有下
一個元素
Reset()
重設 IEnumerator 物件,設為 Collection 物件的第一個元
素之前