下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → ASP.NET中共用代码__教程
ASP.NET中共用代码__教程
日期:2007-5-20 1:22:56 人气:76     [ ]
上一页 [1] [2] [3] 下一页
<script language=vb runat=server src="testClass.vb" />
<!-- #include virtual = "Shared.aspx" -->
<!-- #include virtual = "Include.aspx" -->

Shared.aspx

<script language=vb runat=server id="modShared">
Public Shared shdMe As Object
Public Shared shdString As String = ""

Public Class cTestObj
Public Function Test(Byval commonObj As Object)
Return commonObj.PublicFun(SharedFun("cTestObj"))
End Function
End Class

Public Class cTestShd
Public Function Test()
Return shdMe.PublicFun(SharedFun("cTestShd"))
End Function
End Class

Public Class cTestName
Public Function Test()
Dim webTest As New myTest
Return webTest.PublicFun(SharedFun("cTestName"))
End Function
End Class

Public Function PublicFun(Byval strOutput As String)
shdString &= "-[Public]"
Return strOutput & "-[Public]"
End Function

Public Shared Function SharedFun(Byval addString As String)
shdString &= addString & "-[Shared]"
Return addString & "-[Shared]"
End Function
</script>
<%
shdMe = Me
Dim clsObj As New cTestObj
Response.Write(clsObj.Test(Me) & "<br>")
Dim clsShd As New cTestShd
Response.Write(clsShd.Test() & "<br>")
Dim clsName As New cTestName
Response.Write(clsName.Test() & "<br>")
Response.Write(TypeName(shdMe) & ", " & shdString & "<br>")
%>


圖 3
以 Shared 為關鍵字宣告
當變數或函數以 Shared 為關鍵字宣告為共用後,變數及函數將變更為全域靜態,本例中宣告共用一個物件變數、一個字串變數及一個函數,由於變數為靜態變數,在所有工作階段 (Session) 連線未結束前可以疊加,因此字串變數宣告同時指定初值來避免疊加,但使用若需有類似變數需在網頁系統中共用時,不一定需要使用 Session 物件。共用函數則可於物件中直接使用,不需考慮命名空間的問題。

將主物件當作變數傳遞
傳遞物件可以透過引數或使用前述共用變數傳遞,在 cTestObj 類別中,將物件以引數方式傳遞到物件內使用,在 cTestShd 則透過共用變數傳遞到類別內。由於 PublicFun 函數為主物件下之公用函數,因此須透過主物件命名空間叫用。

宣告一個主物件引用
在cTestName 類別中,示範宣告一個主物件使用,這裡面會產生一個困擾,主物件類別的名稱為何?在本文中所有的程式碼都是被 Test.aspx 引入,對 ASP.NET 來說,實際上只是當作一個 aspx 檔來處理,所以在物件名設定上只能有一個,即是以 Test.aspx 設定為依據。在 Test.aspx 修改例中,在第一行加入 ClassName 指示詞的屬性,這邊指定的類別名稱即可在 cTestName 類別中使用,若是未指定類別名稱,則預設以該 Web Form 檔名將小數點 (dot) 替換為下減號 (under line) 後為預設物件名稱,如圖 2 中,Test_aspx 為物件名稱,圖3中則顯示 myTest 為物件名稱。當然在 cTestName 類別中可以宣告為 Test_aspx 物件,但通常可能因為共用的理由而不知道是哪個 Web Form 引用,在此情況下規定物件名會比較方便。

其他特性來說,在 Shared.aspx 及 Include.aspx 內分別存在程式碼轉譯區塊 (<% … %>),此特性亦有助於在不同分離的共用程式碼檔內,載入時執行指定程式碼或宣告特定的變數,例如在資料庫存取程式碼的規劃上,可將連線字串或常數分割在一個原始碼檔內,連線查詢的程式碼則分割在另一個原始碼檔內,不同的專案或不同的資料庫只要分別建立對應的連線字串宣告即可,仍可引用共用的程式碼存取資料庫。

此外,經由Shared宣告後的變數為靜態共用,在多使用者同時登入的環境下,亦可考慮透過 Shared 變數交換訊息,例如聊天室內的文字字串屬於不斷累加,即可使用 Shared 變數來達到效果。

最後要測試的是動態共用原始碼的限制。使用程式碼宣告區塊時,由於已無法在此區塊內再引用其他程式碼,故引用深度僅一層。使用 Include 指示詞時,由於下層的引入檔仍可繼續使用 Include 指示詞,所以並不知道最大可用深度。一般來說,深度測試屬於串聯測試,廣度測試屬於並聯測試,而通常深度限制比廣度限制來得嚴峻(遞迴深度),因此僅做最大深度測試。首先以程式產生輸出下面的程式碼到不同的檔案,n 由 1 ~ 10,000 進行深度測試,為了確認每個檔案均能被執行到,故在每個檔案內均使用程式碼轉譯區塊執行該檔的輸出函數,串接的結構圖如圖 4 所示。
出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.