類別和元件都是可重複使用的程式碼單位。若要撰寫元件,您必須先從類別開始。當類別符合元件互動的標準時,類別就變成為元件。這個標準是透過 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檔案,然後只要拿到需要的專案參考一下,馬上可以使用,而且還兼具程式碼保護的功能。
元件類別必須獨立設定在「類別庫」專案中;
新增類別庫專案 |
Namespace KK Public Class Bruce End Class End Namespace
在來我們就可以像一般設計Class的方式來撰寫程式碼,我們來設計一個加法:
Namespace KK Public Class Bruce Public Function add(ByVal i As Integer, ByVal j As Integer) As String Dim total As Integer = i + j Return total.ToString() End Function Public Function add(ByVal i As Double, ByVal j As Double) As String Dim total As Double = i + j Return total.ToString() End Function End Class End Namespace
這個Class有兩個加法,一個處理整數,一個處理浮點數,完成設計後,我們選譯類別庫專案,按下右鍵「建置」。
建置元件 |
------ 已開始建置: 專案: ClassLibrary1, 組態: Debug Any CPU ------ ClassLibrary1 -> F:\WebDevelop\Study\StudyTest\ClassLibrary1\ClassLibrary1\bin\Debug\ClassLibrary1.dll ========== 組建: 1 成功或最新狀態、0 失敗、0 略過 ==========
這樣我們就編譯好我們的元件檔,我們開一個「新網站」,在專案按右鍵然後「加入參考」;
加入參考 |
Bin的*.dll |
' 必須先Imports Nanespace Imports ClassLibrary1.KK Partial Class Classtext Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load ' 宣告物件 Dim a As New Bruce ' 使用Integer ' return 4 Response.Write(a.add(1, 3) & "<br/>") '使用Double ' return 4.4 Response.Write(a.add(1.1, 3.3) & "<br/>"") End Sub End Class
透過類別專案的設計,我們可以把原先的*.vb/*.cs類別檔編輯為*.dll檔,這樣方便我們發布共用的元件。另外,除了自己手動Coding類別外,我們也可以使用「類別圖表」的方式來設計類別,在類別專案裡新增一個類別圖表:
新增類別圖表 |
設計 |
我們透過類別庫專案來幫我們把Class編譯為組件檔(*.dll),所有人都使用同一份DLL檔,而非使用*.vb/*. cs的檔案方式。
沒有留言:
張貼留言
感謝您的留言,如果我的文章你喜歡或對你有幫助,按個「讚」或「分享」它,我會很高興的。