Vb6 调用第三个函数时,模块对象为空
我有一个简单的Address类,它只有:Vb6 调用第三个函数时,模块对象为空,vb6,nothing,Vb6,Nothing,我有一个简单的Address类,它只有: Public street as String Public number as Integer 然后,我在一个名为“mdl1”的模块内创建一个实例,并在同一个模块函数上使用它: Public objectAddress as Address Public Function f1() As String Set objectAddress = New Address objectAddress = "5th street" 'this
Public street as String
Public number as Integer
然后,我在一个名为“mdl1”的模块内创建一个实例,并在同一个模块函数上使用它:
Public objectAddress as Address
Public Function f1() As String
Set objectAddress = New Address
objectAddress = "5th street" 'this works fine
If Not isNothing() Then
f1 = objectAddress.street
Else
f1 = vbNullString
End If
End Function
Public Function isNothing() As Boolean
'When entering here, the objectAddres is ALWAYS Nothing, even though i just assigned a value to the street property...
If objectAddress is Nothing then
isNothing = True
Else
isNothing = False
End If
End Function
我已经在f1()
函数中为objectadress.street赋值,但当它进入ìsNothing()函数时,objectAddress再次为空
当控件返回到f1
函数时,对象返回到具有值的状态,并且street属性仍然具有我为其指定的值
那么,模块“属性”的行为不应该像类1吗?或者模块中不存在全局/局部作用域
已解决:
尽管没有人理解这个问题的重点,但问题是我正在创建一个与全局对象同名的局部对象,这就是为什么当它进入另一个函数时总是
Nothing
。你的问题是什么?你的物品价值是否与你的标题中提到的一无是处?或者它是否具有与函数调用之前相同的值?你能澄清你的问题吗?你意识到。。。有一个可变的拼写错误?”Public objectAddres as Address和“如果objectAddress为空,则”VB6中有类模块和静态基本(.bas)模块。每个类都需要自己的模块,而您显示的语法根本无效。即使是这样,就我们所知,您没有定义默认属性,因此您的“工作正常”行应该失败,或者做了一些您没有告诉我们的事情(也许您的street
字符串是默认属性?)。静态模块语法也不正确。这不是VB6,而是VB6、VBA和VBScript语法或其他东西的某种奇怪组合。