使用委派来参照函数

ZDNet软件频道 时间:2003-06-24 作者:ZDNet China |  我要评论()
本文关键词:vb
委派对于增强你应用程序的扩展能力很有好处。你也可以用它来选择在运行期间所要执行的函数。
本文译自Builder.com,未经许可请勿转载 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)

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

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



责任编辑:炒饭

欢迎评论或投稿


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134