У меня есть класс Реестра и существует несколько значений Реестра, к которым я хочу получить доступ из того класса Реестра. (Существует определенное вычисление с этими значениями, таким образом, я думал, что только что исправил весь этот код в самом Классе Реестра).
Таким образом, у нас могло бы быть что-то в нашем RegistryRoutine.cls как:
Function GetMyValue() as integer
Dim R as new RegistryRoutine
<calculations>
GetMyValue=R.GetRegisetryValue (HKEY, key, value, etc.)
End Function
Нет, в целом вы не увидите никаких проблем (например, перезаписываемых переменных-членов или чего-нибудь странного как это).
Проблемы могут возникнуть при наличии явных общих переменных, которые записываются несколько раз. Но это опасно, что бы вы ни делали.
Обратите внимание на рекурсивные случаи - например, GetMyValue () не должен вызывать R.GetMyValue (), а GetRegistryValue () не должен вызывать GetMyValue ().
Однако вы на самом деле этого не хотите.
Так почему бы просто не вызвать GetRegistryValue ( без , R. )?
Довольно часто классы работают с экземплярами самих себя. Рассмотрим, например, как работает древовидная структура. Либо класс Node должен следить за своими дочерними элементами, либо за своим родителем (или за обоими). Все узлы относятся к одному классу.