Поделиться через


Пошаговое руководство. Создание и реализация интерфейсов (Visual Basic)

Интерфейсы описывают характеристики свойств, методов и событий, но содержат сведения о реализации до структур и классов.

Это пошаговое руководство демонстрирует процедуры объявления и реализации интерфейса.

Примечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Определение интерфейса

  1. Откройте новый проект приложения Windows в Visual Basic.

  2. Добавьте в проект новый модуль, выбрав команду Добавить модуль в меню Проект.

  3. Назовите новый модуль Module1.vb и нажмите кнопку Добавить. Отобразится код нового модуля.

  4. Определите интерфейс с именем TestInterface внутри Module1 путем ввода Interface TestInterface между инструкциями Module и End Module и нажмите клавишу ENTER. Редактор кода определит зарезервированное слово Interface и добавит инструкцию End Interface для формирования блока кода.

  5. Определите для интерфейса свойство, метод и событие, расположив между операторами Interface и End Interface следующий код:

    Property Prop1() As Integer
    Sub Method1(ByVal X As Integer)
    Event Event1()
    

Реализация

Можно заметить, что синтаксис, используемый для объявления членов интерфейса, отличается от синтаксиса объявления членов класса. Это отличие отражает тот факт, что интерфейсы не содержат кода реализации.

Чтобы реализовать интерфейс

  1. Добавьте класс с именем ImplementationClass, добавив следующую инструкцию в Module1 после инструкции End Interface, но до инструкции End Module и нажмите клавишу ENTER:

    Class ImplementationClass
    

    В интегрированной среде разработки при нажатии клавиши ENTER Редактор кода подставит соответствующий оператор End Class.

  2. Добавьте в класс ImplementationClass следующий оператор Implements, который определяет реализуемый классом интерфейс:

    Implements TestInterface
    

    Указанный отдельно от других элементов в начале класса или структуры оператор Implements показывает, что класс или структура реализуют интерфейс.

    При работе в среде разработки Редактор кода реализует члены класса, необходимые TestInterface, при нажатии клавиши ENTER; можно пропустить следующий шаг.

  3. Если вы работаете не в интегрированной среде разработки, то необходимо реализовать все члены интерфейса MyInterface. В процедуру события ImplementationClass добавьте следующий код для реализации Event1, Method1 и Prop1:

    Event Event1() Implements TestInterface.Event1
    
    Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1
    End Sub
    
    Public Property Prop1() As Integer Implements TestInterface.Prop1
        Get
        End Get
        Set(ByVal value As Integer)
        End Set
    End Property
    

    Инструкция Implements указывает имена интерфейсов и членов реализуемых интерфейсов.

  4. Завершите определение Prop1 путем добавления закрытых полей класса, в которых хранится значение свойства:

    ' Holds the value of the property.
    Private pval As Integer
    

    Возвратите значение pval из метода Get доступа к свойства.

    Return pval
    

    Установите значение pval в методе Set свойства.

    pval = value
    
  5. Завершите определение Method1, добавив следующий код.

    MsgBox("The X parameter for Method1 is " & X)
    RaiseEvent Event1()
    

Чтобы проверить реализацию интерфейса

  1. Щелкните правой клавишей мыши форму запуска проекта в обозревателе решений и выберите команду Показать код. Редактор покажет класс формы запуска. По умолчанию форма запуска называется Form1.

  2. Добавьте следующее поле testInstance в класс Form1:

    Dim WithEvents testInstance As TestInterface
    

    При объявлении testInstance как WithEvents, класс Form1 может обрабатывать его события.

  3. Добавьте следующий обработчик событий к классу Form1 для обработки событий, созданных testInstance:

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Добавьте в класс Form1 подпрограмму с именем Test, чтобы протестировать класс реализации:

    Sub Test()
        '  Create an instance of the class.
        Dim T As New ImplementationClass
        ' Assign the class instance to the interface.
        ' Calls to the interface members are 
        ' executed through the class instance.
        testInstance = T
        ' Set a property.
        testInstance.Prop1 = 9
        ' Read the property.
        MsgBox("Prop1 was set to " & testInstance.Prop1)
        '  Test the method and raise an event.
        testInstance.Method1(5)
    End Sub
    

    Процедура Test создает экземпляр класса, который реализует MyInterface, и присваивает этот экземпляр полю testInstance, задает свойство и запускает метод через интерфейс.

  5. Добавьте код для вызова процедуры Test из процедуры Form1 Load при запуске формы:

    Private Sub Form1_Load(ByVal sender As System.Object, 
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Test() ' Test the class.
    End Sub
    
  6. Нажав клавишу F5, запустите процедуру Test. Появится сообщение "Prop1 was set to 9" (значение свойства Prop1 установлено равным 9). После нажатия кнопки появится сообщение "The X parameter for Method1 is 5" (параметр Х метода Method1 равен 5). Нажмите OK и появится сообщение "The event handler caught the event" (событие перехвачено обработчиком).

См. также

Ссылки

Оператор Implements

Оператор Interface (Visual Basic)

Оператор Event

Другие ресурсы

Интерфейсы (Visual Basic)