我正在使用VB6应用程序中的表单。如果有人可以提供帮助,我有一个问题。
如果我创建这样的函数......
Public Function CheckUser(userID as integer) as boolean
CheckUser = False
'do stuff here
CheckUser = True
Exit Function
我从另一个过程(相同的形式)调用此函数 - 我可以在整个表单中使用Checkuser布尔值,还是仅用于此过程?基本上我在运行这个函数后试图将一个布尔值返回给我的程序 - 而且实际上并不想声明一个新的模块变量并且那样。试图保持整洁。
答案 0 :(得分:1)
是的,如果您将CheckUser声明为全局,则可以,否则因为local in method而无法实现。 这将帮助您如何声明全局变量。 how to declare global variable
答案 1 :(得分:1)
这是范围:
的问题https://support.microsoft.com/en-ca/kb/141693
一般规则是变量仅在声明它的结构的后代成员的范围内。如果在函数中声明一个变量,就像通过VB的隐式函数变量一样,该变量只存在于该函数中。
访问修饰符是公开的这一事实与它无关。您可以在此处阅读有关访问修饰符的更多信息:
What is the difference between Dim, Global, Public, and Private as Modular Field Access Modifiers?
答案 2 :(得分:1)
首先。 VB6是托管VBA语言的表单包和应用程序对象(加上打印机和剪贴板对象)。
在编程中,有函数(对象的方法和属性也是函数)和变量。
在您的代码中继续使用它,每次使用时都必须If CheckUser("12345") then
。
但函数调用很慢。必须将参数放在堆栈上,在堆栈上创建局部变量,将返回地址放在堆栈上,然后调用可能不在CPU缓存中的内存位置。
因此,如果多次使用某些内容,请将其存储在变量中。
Dim GetCurrentUser As Boolean
GetCurrentUser=CheckUser("12345")
通过将Dim
放在模块的顶部,该模块中的所有过程都可以使用它。或Public GetCurrentUser As Boolean
所有要访问的程序。