Доступ к закрытому члену класса VBA из другого экземпляра того же класса - PullRequest
1 голос
/ 03 мая 2020

У меня есть модуль класса VBA, Foo, у которого есть метод, который работает с другим экземпляром класса Foo. Я хочу, чтобы этот метод мог просматривать закрытое состояние другого экземпляра, как в приведенной ниже функции CompareTo.

VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "Foo"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private SecretValue As Integer

Function CompareTo(ByVal You As Foo) As Integer
    Return Me.SecretValue - You.SecretValue
End Function

К сожалению, вышеприведенное не работает, поскольку в области действия CompareTo, приватное состояние You недоступно.

В других (более) основных языках OO, с которыми я знаком (Java, C#, Kotlin, C ++ и др. * 1025). *.), закрытые члены класса доступны для всех экземпляров класса.

Вопросы:

  • Во-первых, я делаю это неправильно и есть ли способ для Me чтобы увидеть приватное состояние You?
  • Во-вторых, если нет пути, что могло бы оправдать этот странный выбор дизайна?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...