程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> vb.net 之委派

vb.net 之委派

編輯:.NET實例教程

vb.Net 之委派

 

產生情況:

   有時,一個軟件總體框架不會變化,但是隨著需求不同,在個總體框架下會有具體的變化。也說是說,開發明細分成了兩個部份,一是框架部份,一個是具體實現部份。總體部份在某個時候使用一個接口中,而實現部份就是對這個接口的實現。

   為了敘述方便,把框架部份稱為服務端;具體實現部份稱為客戶端。

功能:

    委派的目的就是,保證服務端在指定地方,動態執行客戶端指定的方法。

其中:被指定的方法,對於服務端來說是變化的,由客戶端的使用者自行指定。

 

 

具體使用過程:

 

一、以下是服務端過程

1  申明一個公有的委派方法格式:Public Delegate Sub 自定義過程名xx (參數表)

2        用1中的申明定義一個它的變量 格式  :

dim 委派方法變量yy as  自定義過程xx

3        在其它過程中調用” 委派方法變量yy”

注:這個” 委派方法變量yy”是以方法形式調用

 二、以下是客戶端過程

1  在客戶端定義一個要被服務端調用的方法

語法格式:

Dim Sub 客戶端另定義過程名zz(參數表)

2  在客戶端使用時,生成一個”委派方法對象”,並傳遞給服務端

生成語法格式:

Dim 委派方法對象 As New 自定義過程名xx (客戶端另定義過程名zz的入口地址)’注冊委派對象

    3  啟動服務端相關的運行方法

 

''以下是服務端

‘------------------------

‘Delegate方法,用於向某個傳 ?注冊 ?的方法(注冊 Method的參 ?必須 Delegate方法完全一致)

Public Delegate Sub PrintDelgate(ByVal str As String)

 

''Delegate方法注冊 在這 ?Class裡,在外就能傳 ?方法了!

Public Class TestDelegate

    Dim innerDel As PrintDelgate

    Public Sub New(ByVal outDel As PrintDelgate)

        innerDel = outDel

    End Sub

 

    Public Sub innerPrint(ByVal str As String)

        MsgBox(str + "1")

        innerDel(str)

    End Sub

  End Class

-----------------------------

 

以下是客戶端使用委派

‘------------------------------------

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim instance As New PrintDelgate(AddressOf outPrint)’注冊委派對象

        Dim print As New TestDelegate(instance) ''把委派對象傳遞給服務端

        print.innerPrint("shit") ''調用服務端中的委派方法

    End Sub

    Sub outPrint(ByVal sss As String) ''要加入的處理工作

        MsgBox(sss + "2")

    End Sub

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved