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 – 使用共享子事件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)