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

Как мне реализовать мой класс 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
Ошибка компиляции:

Необходимо реализовать объектный модуль 'добавьте 'для интерфейса' ClsInterface '
OK / Help

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

Есть идеи?

1 Ответ

14 голосов
/ 03 июля 2010

Ваш 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.

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