Реализация моего собственного интерфейса в VBA - Ошибка: объектный модуль должен реализовать 'x' для интерфейса 'y'

Как мне реализовать мой класс ClsInterface, который имеет этот код:

Public Function add(x As Integer, y As Integer) As Integer
End Function

в моем классе Class2, который имеет этот код:

Implements ClsInterface

Public Function add(x As Integer, y As Integer) As Integer
add = x + y
End Function

Мой тестовый код

Public Sub test()
Dim obj As New Class2
MsgBox obj.add(5, 2)
End Sub

Это всегда приводит к следующей ошибке:

Microsoft Visual Basic
Ошибка компиляции:

В объектном модуле необходимо реализовать add для интерфейса ClsInterface
OK/ Помощь

но нет справки по справке Microsoft (когда я нажимаю на кнопку Справка).

Есть идеи?

1 ответ

Решение

Ваш Class2 должен выглядеть так:

Implements ClsInterface

Private Function ClsInterface_add(x As Integer, y As Integer) As Integer
    ClsInterface_add = x + y
End Function

Проверьте выпадающие списки в верхней части окна кода Class2, вы можете увидеть, на какой базовый объект вы можете ссылаться; Класс или ClsInterface.

В вашем тестовом коде вы хотите:

Dim obj As New ClsInterface

Если вы хотите позвонить через интерфейс.

Я также рекомендовал бы именовать интерфейсы в форме ISomeDescription и используя Dim затем Set скорее, чем Dim As New,

Другие вопросы по тегам