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