局部变量优先于Property?

问题描述 投票:1回答:2

我正在研究一些VB6,它在类定义中有一些代码可以归结为:-

Private intMyValue as Integer

Public Property Get MyValue as Integer
    MyValue = intMyValue
End Property

Public Sub DoFoo (ByVal MyValue As Integer)
    Dim bar As Integer
    bar = MyValue
End Sub

问题是:在bar的赋值中,使用的是属性还是参数?

parameters properties vb6
2个回答
0
投票

通过逐步执行代码并在调试环境中为inMyMyValue分配一个已知值,我确定了该参数,而不是所使用的属性。

不过,我看不出有任何从第一原理推论得出的方法。还是最接近的VB6还是要遵循首要原则。


0
投票

一种检查方法是查看IDE认为将使用的内容。

这里是一个例子:

Property Get test() As Integer
    test = 1
End Property

Private Sub test2(test As Integer)
    Debug.Print test 'Place cursor here
End Sub

如果将光标放在指示的行中的test上,然后按Shift + f2(或右键单击并选择Definition),它将在[ C0]。

作为仔细检查,如果您将参数重命名为其他名称,然后再次执行此操作,则会突出显示名为test的属性。

我认为这与编译器一致。

© www.soinside.com 2019 - 2024. All rights reserved.