我們先參考一下MSDN的
元件類別說明:
類別和元件都是可重複使用的程式碼單位。若要撰寫元件,您必須先從類別開始。當類別符合元件互動的標準時,類別就變成為元件。這個標準是透過 IComponent 介面所提供。任何實作 IComponent 介面的類別就是元件。
我們在「
VB 物件導向」介紹Class(類別)相關觀念,但這些*.vb/*.cs的Class檔案都會存放於App_Code資料夾之下,在ASP.NET裡還有另一個Bin資料夾,但Bin資料夾裡是存放*.dll檔案。
- App_Code
存放Class原始碼,且會自動在執行階段編譯
- Bin
存放編譯好的組件(*.dll)
但當App_Code裡的*.vb/*.cs類別檔需要給其他專案使用時,怎麼辦?複製過去嗎?那不就又走上副程式的回頭路,又失去OOP的精神!更好的辦法就是把這些Class編譯成Component,也就DLL檔案,然後只要拿到需要的專案參考一下,馬上可以使用,而且還兼具程式碼保護的功能。
元件類別必須獨立設定在「類別庫」專案中;
 |
新增類別庫專案 |
一開始是一個空白的Class檔,我們可以加上Namespace,然後修改Class名稱:
在來我們就可以像一般設計Class的方式來撰寫程式碼,我們來設計一個加法:
03 | Public Function add( ByVal i As Integer , ByVal j As Integer ) As String |
04 | Dim total As Integer = i + j |
05 | Return total.ToString() |
08 | Public Function add( ByVal i As Double , ByVal j As Double ) As String |
09 | Dim total As Double = i + j |
10 | Return total.ToString() |
這個Class有兩個加法,一個處理整數,一個處理浮點數,完成設計後,我們選譯類別庫專案,按下右鍵「建置」。
 |
建置元件 |
建置完成訊息:
------ 已開始建置: 專案: ClassLibrary1, 組態: Debug Any CPU ------
ClassLibrary1 -> F:\WebDevelop\Study\StudyTest\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll
========== 組建: 1 成功或最新狀態、0 失敗、0 略過 ==========
這樣我們就編譯好我們的元件檔,我們開一個「新網站」,在專案按右鍵然後「加入參考」;
 |
加入參考 |
然後查看Bin目錄
 |
Bin的*.dll |
開啟一個新網頁:
02 | Imports ClassLibrary1.KK |
04 | Partial Class Classtext |
05 | Inherits System.Web.UI.Page |
07 | Protected Sub Page_Load( ByVal sender As Object , ByVal e As System.EventArgs) Handles Me .Load |
12 | Response.Write(a.add(1, 3) & " |
16 | Response.Write(a.add(1.1, 3.3) & " |
透過類別專案的設計,我們可以把原先的*.vb/*.cs類別檔編輯為*.dll檔,這樣方便我們發布共用的元件。另外,除了自己手動Coding類別外,我們也可以使用「類別圖表」的方式來設計類別,在類別專案裡新增一個類別圖表:
 |
新增類別圖表 |
然後從工具箱裡的「類別設計工具」拉出你需要的工具:
 |
設計 |
圖型化介面可以減少我們的工作量,而且可以清楚看出每個Class之間關係,這是很棒的一件事,但一些客製化的程式,我們還是必須寫程式,可以從上圖有一個「檢視程式碼」(倒算第三個)來進程Class程式介面。
我們透過類別庫專案來幫我們把Class編譯為組件檔(*.dll),所有人都使用同一份DLL檔,而非使用*.vb/*. cs的檔案方式。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。