Почему подчеркнутая переменная, которая не объявлена, не дает ошибку отладки - PullRequest
0 голосов
/ 08 мая 2019

Этот код не выдает ошибку компиляции в VS 2017 (15.9.5)?

Почему это может быть?

Class BugInclass
    Public Property myProp As String
    Public Sub MyFct()
        myProp = _myProp
    End Sub
End Class

обратите внимание, что "_myProp" не декальдирован - он просто обрабатывается, как если бы он был "myProp".

1 Ответ

3 голосов
/ 08 мая 2019

Вы используете авто-свойства, а они просто синтаксический сахар.Вы пишете этот код:

Public Property myProp As String

, но на самом деле это компилируется так:

Private _myProp As String

Public Property myProp As String
    Get
        Return _myProp
    End Get
    Set
        _myProp = value
    End Set
End Property

Этот второй фрагмент - то, что мы привыкли писать для всех свойств вплоть до нескольких леттому назад.Авто-свойство гораздо удобнее, но старый, подробный код все еще там, за кулисами, поэтому неявное поле поддержки все еще существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...