vb.net – 使用共享子事件?

vb.net – 使用共享子事件?,第1张

概述我有一个应该作为Shared实现的方法,因为它没有内部状态: Friend Class MMDates Friend Shared Sub Calculate(ByRef CP As DataPlug) MsgBox("dates was called with " & CP.Name) End SubEnd Class 现在我想允许通过RaiseEvent调用该 我有一个应该作为Shared实现的方法,因为它没有内部状态:

FrIEnd Class MMDates    FrIEnd Shared Sub Calculate(ByRef CP As DataPlug)        MsgBox("dates was called with " & CP.name)    End SubEnd Class

现在我想允许通过RaiseEvent调用该方法,所以我做了:

FrIEnd Class MMDates    FrIEnd Shared WithEvents DP As DataPlug    FrIEnd Shared Sub Calculate(ByRef CP As DataPlug) Handles DP.CalculateDates        MsgBox("dates was called with " & CP.name)    End SubEnd Class

在调用者DataPlug中,我补充说:

Public Event CalculateDates(ByRef CP As DataPlug)FrIEnd Sub Calculate()    RaiseEvent CalculateDates(Me)End Sub

所有这些编译都很好,并且调用Raise时没有错误,但事件永远不会被MMDates捕获.我通过将其添加到MMDates实现了一个替代方案:

Public Shared Sub StartListening()    AddHandler DataPlug.CalculateDates,AddressOf CalculateEnd Sub

…然后在我的应用程序的启动例程中调用它.这在技术上是我想要的 – 事件确实最终调用共享方法.但是,此链接是在运行时创建的,即使它确实是在编译时定义的.

那么这个共享事件模式在VB.net中是否可以在编译时使用Handles或其他语法的变体?

解决方法 好吧,所以这样做的正确方法是使用Partial将你烘焙到较低级别,然后只填写混合.所以在我的情况下,我为基类中的Calculate和Calc中的实现做了部分,并且presto! 总结

以上是内存溢出为你收集整理的vb.net – 使用共享子事件?全部内容,希望文章能够帮你解决vb.net – 使用共享子事件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1212722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存