gpt4 book ai didi

从另一个类/对象调用共享函数时引发的 VB.net 类事件?

转载 作者:行者123 更新时间:2023-12-05 01:48:07 25 4
gpt4 key购买 nike

当您从另一个对象或类调用共享子/函数时,如何创建或使用引发的事件?

我举个例子:我有访问数据库的 DataHost 类:

Class DataHost

Shared Sub addName().....
Shared Sub delName().....
Shared Function getNames()....

Shared Function askPassword()........

End Class

我希望程序在每次另一个类调用 DataHost 的子/函数来访问数据库时询问密码。

我可以在每个函数的开头添加 if askpass()=False Then return但在我的代码中,函数超过 20 个,我希望有一个更智能的解决方案。

所以我正在寻找调用 askPassword() 的东西每当您调用另一个子/函数时。

最佳答案

好吧,这可能根本不是您所要求的,但我会发布共享事件的代码,然后您可以看看是否可以以任何方式使用它。 (这是我的日志事件,所以请忽略命名)

Public Class Logging
Public Shared Event LogEvent As EventHandler
Public Shared Sub OnLogWrite(ByVal Sender As Object)
RaiseEvent LogEvent(Sender, New EventArgs)
End Sub
End Class

这是您必须收听的共享事件。您可以在任何需要的地方向 LogEvent 添加处理程序。它将获取对此的所有调用。在这里您可以创建一个共享变量来跟踪发件人值。例如一个列表(对象)。

您可以在任何地方引发事件(除了在 Shared 方法或函数中,因为没有实例):

Logging.OnLogWrite(Me)

您可以在任何地方收听事件:

AddHandler Logging.LogEvent, AddressOf HandleLogEvent

HandleLogEvent 的代码如下所示:

Private Sub HandleLogEvent()
MessageBox.Show("Hello.")
End Sub

例如,HandleLogEvent 可以重命名为 askPassword。这意味着如果没有在 OnLogWrite Sub 中进行检查。然后只要事件被调用,askPassword 就会被执行。希望这能以某种方式帮助您。

关于从另一个类/对象调用共享函数时引发的 VB.net 类事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18568816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com