Пошаговое руководство. Создание и реализация интерфейсов (Visual Basic)
Интерфейсы описывают характеристики свойств, методов и событий, но содержат сведения о реализации до структур и классов.
Это пошаговое руководство демонстрирует процедуры объявления и реализации интерфейса.
Примечание
В этом пошаговом руководстве не предоставляет сведения о том, как создать пользовательский интерфейс.
Примечание
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Настройка параметров разработки в Visual Studio.
Определение интерфейса
Откройте новый проект приложения Windows в Visual Basic.
Добавьте в проект новый модуль, выбрав команду Добавить модуль в меню Проект.
Назовите новый модуль Module1.vb и нажмите кнопку Добавить. Отобразится код нового модуля.
Определите интерфейс с именем TestInterface внутри Module1 путем ввода Interface TestInterface между инструкциями Module и End Module и нажмите клавишу ENTER. Редактор кода определит зарезервированное слово Interface и добавит инструкцию End Interface для формирования блока кода.
Определите для интерфейса свойство, метод и событие, расположив между операторами Interface и End Interface следующий код:
Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Реализация
Можно заметить, что синтаксис, используемый для объявления членов интерфейса, отличается от синтаксиса объявления членов класса. Это отличие отражает тот факт, что интерфейсы не содержат кода реализации.
Чтобы реализовать интерфейс
Добавьте класс с именем ImplementationClass, добавив следующую инструкцию в Module1 после инструкции End Interface, но до инструкции End Module и нажмите клавишу ENTER:
Class ImplementationClass
В интегрированной среде разработки при нажатии клавиши ENTER Редактор кода подставит соответствующий оператор End Class.
Добавьте в класс ImplementationClass следующий оператор Implements, который определяет реализуемый классом интерфейс:
Implements TestInterface
Указанный отдельно от других элементов в начале класса или структуры оператор Implements показывает, что класс или структура реализуют интерфейс.
При работе в среде разработки Редактор кода реализует члены класса, необходимые TestInterface, при нажатии клавиши ENTER; можно пропустить следующий шаг.
Если вы работаете не в интегрированной среде разработки, то необходимо реализовать все члены интерфейса 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 указывает имена интерфейсов и членов реализуемых интерфейсов.
Завершите определение Prop1 путем добавления закрытых полей класса, в которых хранится значение свойства:
' Holds the value of the property. Private pval As Integer
Возвратите значение pval из метода Get доступа к свойства.
Return pval
Установите значение pval в методе Set свойства.
pval = value
Завершите определение Method1, добавив следующий код.
MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Чтобы проверить реализацию интерфейса
Щелкните правой клавишей мыши форму запуска проекта в обозревателе решений и выберите команду Показать код. Редактор покажет класс формы запуска. По умолчанию форма запуска называется Form1.
Добавьте следующее поле testInstance в класс Form1:
Dim WithEvents testInstance As TestInterface
При объявлении testInstance как WithEvents, класс Form1 может обрабатывать его события.
Добавьте следующий обработчик событий к классу Form1 для обработки событий, созданных testInstance:
Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Добавьте в класс 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, задает свойство и запускает метод через интерфейс.
Добавьте код для вызова процедуры 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
Нажав клавишу 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" (событие перехвачено обработчиком).
См. также
Ссылки
Оператор Interface (Visual Basic)