正 文

使用委派来参照函数


www.7dspace.com  更新日期:2005-11-28 2:38:00  七度空间


Visual Basic.NET包括了对委派(delegate)的支持,这就提供了安全的函数指针(function pointer)。委派能够被用来在运行期间动态地拾取特定的函数。

在你声明一个委派的时候,你就要为方法定义一个原型(prototype)。委派会决定自变量的数量和类型,以及返回值,如果有的话。委派所指向的任何方法都必须符合这个特征。

你可以使用下面的代码来声明一个委派:

Private Delegate Sub PresentError(ByValMsg As String)

你也可以定义符合委派特征的多个方法。

Private Sub DisplayMsg(ByValMsg As String)
    MsgBox(Msg)
End Sub

Private Sub WriteMsgToOutput(ByValMsg As String)
    Debug.WriteLine(Msg)
End Sub

要使用委派,你就需要为它创建一个实例,并把真实方法的地址传递给构造函数。这样这个函数就可以通过Invoke方法被调用了。

Dim test As New PresentError(AddressOfDisplayMsg)
test.Invoke("This is a test")

现在调用委派就会在MessageBox信息框里显示上面这条信息。要更改委派所参照的方法,只用简单地更改传递给构造函数的方法就行了。

Dim test As New PresentError(AddressOfWriteMsgToOutput)

现在,调用委派就会把这条信息写到输出窗口里。

委派对于增强你应用程序的扩展能力很有好处。你也可以用它来选择在运行期间所要执行的函数。


上一篇:在运行过程中获取信息
下一篇:用动态菜单增强.NET应用程序
作者:  来源:开发者在线 ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐