Приоритет локальной переменной над свойством? - PullRequest
1 голос
/ 29 апреля 2020

Я работаю над битом 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 это свойство используется или параметр?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Один из способов проверить - посмотреть, что 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 ), чтобы выделить test в test As Integer (параметр).

В качестве двойной проверки, если вы переименуете параметр во что-то другое и сделаете это снова, тогда будет выделено свойство с именем test.

Я предполагаю, что это согласуется с компилятором.

0 голосов
/ 29 апреля 2020

Проходя по коду и назначая известное значение intMyValue в среде отладки, я определил параметр, а не используемое свойство.

Я не вижу способа вывести это из первые принципы, хотя. Или, во всяком случае, ближайший VB6 получает первые принципы.

...