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


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

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

В этом пошаговом руководстве показано, как объявить и реализовать интерфейс.

Замечание

В этом пошаговом руководстве не содержатся сведения о создании пользовательского интерфейса.

Замечание

На компьютере могут отображаться различные имена или расположения для некоторых элементов пользовательского интерфейса 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, а затем нажмите клавишу ВВОД.

    Class ImplementationClass
    

    Если вы работаете в интегрированной среде разработки, редактор кода предоставляет соответствующую End Class инструкцию при нажатии клавиши ВВОД.

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

    Implements TestInterface
    

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

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

  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 accessor.

    Return pval
    

    Установите значение pval в аксессоре свойства.

    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. Добавьте подпрограмму с именем TestForm1 в класс для тестирования класса реализации:

    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. Выполните процедуру Test , нажав клавишу F5. Отображается сообщение "Prop1 установлен в значение 9". После нажатия кнопки "ОК" отображается сообщение "Параметр X для метода 1 равно 5". Нажмите кнопку "ОК" и отображается сообщение "Обработчик событий поймал событие".

См. также