VB6中参数与属性的优先级:赋值时调用参数还是属性?
答案:是Parameter(参数)
在你给出的VB6代码片段中,bar = MyValue这行里的MyValue是过程参数,不是类的属性。
原因说明:
VB6的作用域规则里,过程(Sub/Function)内部的参数或局部变量,优先级会高于类的成员属性。这里的DoFoo Sub定义了一个同名的MyValue参数,它的作用域仅限于这个Sub内部。类的Public Property Get MyValue虽然名字相同,但在DoFoo内部会被参数"遮蔽"——除非你显式使用Me关键字指定要访问类的成员,否则编译器会默认解析为当前作用域内的参数。
如果想要在DoFoo里访问类的MyValue属性,需要显式加上Me前缀:
Public Sub DoFoo (ByVal MyValue As Integer) Dim bar As Integer bar = Me.MyValue ' 此处才会访问类的MyValue属性 End Sub
内容的提问来源于stack exchange,提问作者Brian Hooper
相关产品推荐
相关产品推荐

