Пошаговое руководство. Создание и реализация интерфейсов (Visual Basic)
Интерфейсы описывают характеристики свойств, методов и событий, но оставляют сведения о реализации структур или классов.
В этом пошаговом руководстве показано, как объявить и реализовать интерфейс.
Примечание.
В этом пошаговом руководстве не содержатся сведения о создании пользовательского интерфейса.
Примечание.
Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Персонализация среды IDE.
Определение интерфейса
Откройте новый проект приложения Windows на Visual Basic.
Добавьте новый модуль в проект, нажав кнопку "Добавить модуль " в меню "Проект ".
Назовите новый модуль
Module1.vb
и нажмите кнопку "Добавить". Отображается код нового модуля.Определите интерфейс с именем
TestInterface
внутриModule1
, введяInterface TestInterface
междуModule
операторами иEnd Module
операторами, а затем нажимая клавишу ВВОД. Редактор кода отступитInterface
ключевое слово и добавляетEnd Interface
инструкцию для формирования блока кода.Определите свойство, метод и событие для интерфейса, поместив следующий код между
Interface
операторами:End Interface
Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Внедрение
Вы можете заметить, что синтаксис, используемый для объявления членов интерфейса, отличается от синтаксиса, используемого для объявления членов класса. Это различие отражает тот факт, что интерфейсы не могут содержать код реализации.
Реализация интерфейса
Добавьте класс с именем
ImplementationClass
, добавив следующую инструкциюModule1
в , послеEnd Interface
инструкции, но перед операторомEnd Module
, а затем нажмите клавишу ВВОД:Class ImplementationClass
Если вы работаете в интегрированной среде разработки, редактор кода предоставляет соответствующую
End Class
инструкцию при нажатии клавиши ВВОД.Добавьте следующую
Implements
инструкциюImplementationClass
в интерфейс, в которую реализуется класс:Implements TestInterface
При указании отдельно от других элементов в верхней части класса или структуры оператор указывает,
Implements
что класс или структура реализует интерфейс.Если вы работаете в интегрированной среде разработки, редактор кода реализует элементы класса, необходимые
TestInterface
при нажатии клавиши ВВОД, и вы можете пропустить следующий шаг.Если вы не работаете в интегрированной среде разработки, необходимо реализовать все члены интерфейса
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 accessor.Return pval
Задайте значение
pval
в методе доступа набора свойств.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
Добавьте подпрограмму с именем
Test
Form1
в класс для тестирования класса реализации: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
Выполните процедуру
Test
, нажав клавишу F5. Отображается сообщение "Prop1", равное 9. После нажатия кнопки "ОК" отображается сообщение "Параметр X для метода 1 равно 5". Нажмите кнопку "ОК" и отображается сообщение "Обработчик событий поймал событие".