Вау, я думаю, вы обнаружили очень странное поведение VB: когда вы находитесь внутри определения функции, вы можете вернуть значение либо с помощью Return
или с помощью =
для «установки» значения функции.
Как это:
Function GetInteger() As Integer
GetInteger = 5
End Function
В приведенной выше функции строка GetInteger = 5
в основном эквивалентна Return 5
*.
Хорошо, значит, вы, наверное, уже это знали Но вот странная часть, и я понятия не имел, что это был случай, пока не проверил это сейчас (правда, на Mono , но я вижу то же поведение, что и вы): очевидно, это относится к добытчики недвижимости . Посмотрите на эту строку:
Avg = If((_intList.Count > 0), _sum / _intList.Count, _avg)
Вы на самом деле не вызываете установщик свойств там ; вы устанавливаете возвращаемое значение для геттера. В этом можно убедиться, убрав строку Return _avg
; вдруг вы увидите, что ваш получатель начинает возвращать фактическое среднее значение.
* Не точно то же самое, как вы могли бы позже установить GetInteger
на что-то другое без немедленного возврата, тогда как использование Return
гарантирует, что функция сразу же вернется.