Разное

Интерфейс в visual basic: Интерфейсы — Visual Basic | Microsoft Learn

Интерфейсы — Visual Basic | Microsoft Learn

  • Статья

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

Далее представлены другие причины, из-за которых вам может потребоваться использовать интерфейсы вместо наследования классов.

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

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

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

  • Интерфейсы полезны, когда невозможно использовать наследование класса. Например, структуры не могут наследовать от классов, но они могут реализовывать интерфейсы.

Объявление интерфейсов

Определения интерфейса заключаются в операторы Interface и End Interface. После оператора Interface можно добавить необязательный оператор Inherits, в котором указывается один или несколько наследуемых интерфейсов. Операторы Inherits должны предшествовать всем другим операторам в объявлении, за исключением комментариев.

Остальными операторами в определении интерфейса должны быть Event, Sub, Function, Property, Interface, Class, Structure и Enum. Интерфейсы не могут содержать код реализаций или операторы, связанные с кодом реализации, такие как End Sub и End Property.

В пространстве имен операторы интерфейса по умолчанию относятся к типу Friend, но также их можно явно объявить как Public или Friend. Интерфейсы, определенные в классах, модулях, интерфейсах и структурах по умолчанию объявлены как Public, но их также можно явно объявить как Public, Friend, Protected и Private.

Примечание

Ключевое слово

Shadows может применяться ко всем элементам интерфейса. Ключевое слово Overloads слово может применяться к операторам Sub, Function, и Property, объявленным в определении интерфейса. Кроме того, операторы Property могут содержать модификаторы Default, ReadOnly и WriteOnly. Другие модификаторы (Public, Private, Friend, Protected, Shared, Overrides, MustOverride и Overridable) не разрешены. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.

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

Interface IAsset
    Event ComittedChange(ByVal Success As Boolean)
    Property Division() As String
    Function GetID() As Integer
End Interface

Реализация интерфейсов

Зарезервированное слово Implements Visual Basic используется двумя способами. Оператор Implements означает, что класс или структура реализуют интерфейс. Ключевое слово Implements указывает, что элемент класса или структуры реализует определенный элемент интерфейса.

Оператор Implements

Если класс или структура реализует один или несколько интерфейсов, они должны содержать оператор Implements сразу после оператора Class или Structure. Оператору Implements требуется разделенный запятыми список интерфейсов, которые должны быть реализованы с помощью класса. Структура или класс должны реализовать все элементы интерфейса с помощью ключевого слова Implements.

Ключевое слово Implements

Ключевому слову Implements требуется разделенный запятыми список элементов интерфейса, которые необходимо реализовать. Как правило, указывается только один элемент интерфейса, но можно указать несколько элементов. Спецификация элемента интерфейса состоит из имени интерфейса, которое должно быть указано в операторе implements внутри класса, точки и имени реализуемой функции-члена, свойства или события. Имя члена, реализующего член интерфейса, может использовать любой юридический идентификатор и не ограничивается InterfaceName_MethodName соглашением, используемым в более ранних версиях Visual Basic.

Например, в следующем примере кода показано, как объявить подпрограмму с именем Sub1, в которой реализуется метод интерфейса:

Class Class1
    Implements interfaceclass.interface2
    Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
    End Sub
End Class

Типы параметров и типы возвращаемого значения элемента реализации должны соответствовать объявлению свойства или элемента в интерфейсе. Наиболее распространенный способ реализации элемента интерфейса — использование элемента с таким же, как у интерфейса, именем, как показано в предыдущем примере.

Для объявления реализации метода интерфейса можно использовать любые атрибуты, которые допустимы в объявлении метода экземпляра, включая Overloads, Overrides, Overridable, Public, Private, Protected, Friend, Protected Friend, MustOverride, Default и Static. Атрибут

Shared недопустим, поскольку он определяет класс, а не метод экземпляра.

С помощью Implements можно также написать один метод, который реализует несколько методов, определенных в интерфейсе, как показано в следующем примере:

Class Class2
    Implements I1, I2
    Protected Sub M1() Implements I1.M1, I1.M2, I2.M3, I2.M4
    End Sub
End Class

Закрытый элемент можно использовать для реализации члена интерфейса. Если закрытый член реализует член интерфейса, этот элемент становится доступен через интерфейс, хотя он недоступен напрямую через переменные класса.

Примеры реализации интерфейсов

Классы, реализующие интерфейс, должны реализовать все свойства, методы и события.

В примере ниже определены два интерфейса. Второй интерфейс, Interface2, наследует Interface1 и определяет дополнительное свойство и метод.

Interface Interface1
    Sub sub1(ByVal i As Integer)
End Interface
' Demonstrates interface inheritance.
Interface Interface2 Inherits Interface1 Sub M1(ByVal y As Integer) ReadOnly Property Num() As Integer End Interface

В следующем примере реализуется Interface1, интерфейс, определенный в предыдущем примере:

Public Class ImplementationClass1
    Implements Interface1
    Sub Sub1(ByVal i As Integer) Implements Interface1.sub1
        ' Insert code here to implement this method.
    End Sub
End Class

В последнем примере реализуется Interface2, включающий метод, унаследованный от Interface1:

Public Class ImplementationClass2
    Implements Interface2
    Dim INum As Integer = 0
    Sub sub1(ByVal i As Integer) Implements Interface2.sub1
        ' Insert code here that implements this method.
    End Sub
    Sub M1(ByVal x As Integer) Implements Interface2.M1
        ' Insert code here to implement this method.
    End Sub
    ReadOnly Property Num() As Integer Implements Interface2.
Num Get Num = INum End Get End Property End Class

Можно реализовать свойство только для чтения со свойством, доступным для чтения и записи (т. е. не нужно объявлять его свойством только для чтения в классе реализации). В реализации интерфейса должны быть по крайней мере реализованы элементы, которые объявляются интерфейсом, но можно обеспечить дополнительные возможности, например разрешить запись свойства.

ЗаголовокОписание
Пошаговое руководство. Создание и реализация интерфейсовСодержит подробные процедуры, которые помогут вам определить и реализовать собственный интерфейс.
Вариативность в универсальных интерфейсахВ этом разделе описываются ковариация и контрвариация в универсальных интерфейсах, а также представлен список вариативных универсальных интерфейсов платформы .NET Framework.

Создание и реализация интерфейсов — Visual Basic

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

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

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

Примечание

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

Примечание

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

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

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

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

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

  4. Определите интерфейс с именем TestInterface внутри Module1 , введя Interface TestInterface между Module операторами и End Module , а затем нажав клавишу ВВОД. Редактор кода добавляет отступ для ключевого 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 свойства.

    Return pval
    

    Задайте значение pval в методе доступа для набора свойств.

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

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

Тестирование реализации интерфейса

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

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

    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. Добавьте подпрограмму с именем 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 , задает свойство и запускает метод через интерфейс .

  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». Нажмите кнопку ОК, и отобразится сообщение «Обработчик событий перехватил событие».

См. также раздел

  • Оператор Implements
  • Интерфейсы
  • Оператор Interface
  • Оператор Event

интерфейсов — Visual Basic | Microsoft Learn

  • Статья

Интерфейсы определяют свойства, методы и события, которые могут быть реализованы классами. Интерфейсы позволяют вам определять функции как небольшие группы тесно связанных свойств, методов и событий; это уменьшает проблемы совместимости, поскольку вы можете разрабатывать улучшенные реализации для своих интерфейсов, не подвергая риску существующий код. Вы можете добавлять новые функции в любое время, разрабатывая дополнительные интерфейсы и реализации.

Есть несколько других причин, по которым вы можете захотеть использовать интерфейсы вместо наследования классов:

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

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

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

  • Интерфейсы полезны, когда нельзя использовать наследование классов. Например, структуры не могут наследовать от классов, но могут реализовывать интерфейсы.

Объявление интерфейсов

Определения интерфейсов включены в операторы Interface и End Interface . После оператора Interface можно добавить необязательный оператор Inherits , в котором перечислены один или несколько унаследованных интерфейсов. Наследует операторы , которые должны предшествовать всем другим операторам в объявлении, кроме комментариев. Остальные операторы в определении интерфейса должны быть Event , Sub , Function , Property , Interface , Class , Structure и Enum . Интерфейсы не могут содержать какой-либо код реализации или операторы, связанные с кодом реализации, например End Sub или End Property 9.0040 .

В пространстве имен операторы интерфейса по умолчанию имеют вид Friend , но их также можно явно объявить как Public или Friend . Интерфейсы, определенные в классах, модулях, интерфейсах и структурах, по умолчанию имеют Public , но они также могут быть явно объявлены как Public , Friend , Protected или Private .

Примечание

Ключевое слово Shadows можно применять ко всем элементам интерфейса. 9Ключевое слово 0039 Overloads можно применять к операторам Sub , Function и Property , объявленным в определении интерфейса. Кроме того, операторы Property могут иметь модификаторы Default , ReadOnly или WriteOnly . Ни один из других модификаторов — Общий , Частный , Друг , Защищенный , Общий , Переопределение , MustOverride или Переопределяемый — разрешены. Дополнительные сведения см. в разделе Контексты объявлений и уровни доступа по умолчанию.

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

 Интерфейс IAsset
    Событие CommittedChange(ByVal Success As Boolean)
    Отдел свойств () как строка
    Функция GetID() как целое число
Конечный интерфейс
 

Реализация интерфейсов

Зарезервированное слово Visual Basic Реализует используется двумя способами. 9Оператор 0039 Implements означает, что класс или структура реализует интерфейс. Ключевое слово Implements означает, что член класса или член структуры реализует определенный член интерфейса.

Оператор

Implements

Если класс или структура реализует один или несколько интерфейсов, он должен включать оператор Implements сразу после оператора Class или Structure . Оператор Implements требует списка интерфейсов, разделенных запятыми, которые должны быть реализованы классом. Класс или структура должны реализовывать все элементы интерфейса с помощью Реализует ключевое слово .

Ключевое слово Implements

Ключевое слово Implements требует реализации списка элементов интерфейса, разделенных запятыми. Как правило, указывается только один член интерфейса, но вы можете указать несколько членов. Спецификация члена интерфейса состоит из имени интерфейса, которое должно быть указано в операторе реализации внутри класса; Период; и имя реализуемой функции-члена, свойства или события. Имя члена, который реализует элемент интерфейса, может использовать любой допустимый идентификатор, и он не ограничивается InterfaceName_MethodName соглашение, используемое в более ранних версиях Visual Basic.

Например, следующий код показывает, как объявить подпрограмму с именем Sub1 , которая реализует метод интерфейса:

 Class Class1
    Реализует interfaceclass.interface2
    Sub Sub1 (ByVal i As Integer) Реализует interfaceclass.interface2.Sub1
    Конец сабвуфера
Конец класса
 

Типы параметров и возвращаемые типы члена реализации должны соответствовать свойству интерфейса или объявлению члена в интерфейсе. Наиболее распространенный способ реализации элемента интерфейса — это член с тем же именем, что и у интерфейса, как показано в предыдущем примере.

Чтобы объявить реализацию метода интерфейса, вы можете использовать любые атрибуты, допустимые в объявлениях методов экземпляра, включая Overloads , Overrides , Overridable , Public , Private , 0 Protected 903 Друг , Защищенный друг , MustOverride , По умолчанию и Статический . Атрибут Shared недопустим, поскольку он определяет класс, а не метод экземпляра.

Используя Implements , вы также можете написать один метод, который реализует несколько методов, определенных в интерфейсе, как в следующем примере:

 Class Class2
    Орудия И1, И2
    Защищенный переходник M1() Реализует I1.M1, I1.M2, I2.M3, I2.M4
    Конец сабвуфера
Конец класса
 

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

Примеры реализации интерфейса

Классы, реализующие интерфейс, должны реализовывать все его свойства, методы и события.

В следующем примере определяются два интерфейса. Второй интерфейс, Interface2 , наследует Interface1 и определяет дополнительное свойство и метод.

 Интерфейс Интерфейс1
    Sub sub1 (ByVal i как целое число)
Конечный интерфейс
' Демонстрирует наследование интерфейса.
Интерфейс Интерфейс2
    Наследует интерфейс1
    Sub M1 (ByVal y как целое число)
    Свойство только для чтения Num() как целое число
Конечный интерфейс
 

Следующий пример реализует Interface1 , интерфейс, определенный в предыдущем примере:

 Открытый класс РеализацияКласс1
    Реализует интерфейс1
    Sub Sub1 (ByVal i As Integer) реализует Interface1.sub1
        ' Вставьте сюда код для реализации этого метода.
    Конец сабвуфера
Конец класса
 

Последний пример реализует Interface2 , включая метод, унаследованный от Interface1 :

 Открытый класс РеализацияКласс2
    Реализует интерфейс2
    Dim INum как целое число = 0
    Sub sub1 (ByVal i As Integer) реализует Interface2.sub1
        ' Вставьте сюда код, реализующий этот метод. 
    Конец сабвуфера
    Sub M1 (ByVal x As Integer) реализует Interface2.M1
        ' Вставьте сюда код для реализации этого метода.
    Конец сабвуфера
    Свойство Num() только для чтения, поскольку Integer реализует Interface2.Num
        Получать
            Число = ИНум
        Конец Получить
    Конечная собственность
Конец класса
 

Вы можете реализовать свойство только для чтения со свойством для чтения и записи (то есть вам не нужно объявлять его только для чтения в реализующем классе). Реализация интерфейса обещает реализовать как минимум те элементы, которые объявляет интерфейс, но вы можете предложить больше функциональных возможностей, например разрешить запись вашего свойства.

Титул Описание
Пошаговое руководство: создание и реализация интерфейсов Предоставляет подробную процедуру, которая проведет вас через процесс определения и реализации вашего собственного интерфейса.
Различия в общих интерфейсах Обсуждает ковариантность и контравариантность в универсальных интерфейсах и предоставляет список вариантов универсальных интерфейсов в .NET Framework.

Создание и реализация интерфейсов — Visual Basic

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья

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

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

Примечание

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

Примечание

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

Для определения интерфейса

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

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

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

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

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

     Свойство Prop1() как целое число
    Sub Method1 (ByVal X как целое число)
    Событие Событие1()
     

Реализация

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

Для реализации интерфейса

  1. Добавьте класс с именем RegistrationClass , добавив следующий оператор в Module1 , после оператора End Interface , но перед оператором End Module , а затем нажмите клавишу ВВОД:

     Класс РеализацииКласс
     

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

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

     Реализует TestInterface
     

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

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

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

     Событие Event1() реализует TestInterface. Event1
    Public Sub Method1 (ByVal X As Integer) реализует TestInterface.Method1
    Конец сабвуфера
    Общедоступное свойство Prop1 () как Integer реализует TestInterface.Prop1
        Получать
        Конец Получить
        Установить (значение ByVal как целое число)
        Конечный набор
    Конечная собственность
     

    Оператор Implements называет реализуемый интерфейс и элемент интерфейса.

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

     ' Содержит значение свойства.
    Частный pval как целое число
     

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

     Возвратный пвал
     

    Задайте значение pval в средстве доступа к набору свойств.

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

     MsgBox("Параметр X для Method1 равен " & X)
    Событие RaiseEvent1()
     

Для проверки реализации интерфейса

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

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

     Dim WithEvents testInstance As TestInterface
     

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

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

     Sub EventHandler() обрабатывает testInstance.Event1
        MsgBox("Обработчик события перехватил событие.")
    Конец сабвуфера
     
  4. Добавьте подпрограмму с именем Test в класс Form1 для проверки класса реализации:

     Подтест()
        'Создать экземпляр класса.
        Dim T как новый класс реализации
        ' Назначить экземпляр класса интерфейсу. 
        ' Вызовы членов интерфейса
        ' выполняется через экземпляр класса.
        тестовый экземпляр = T
        'Установить свойство.
        testInstance.Prop1 = 9
        ' Прочитайте свойство.
        MsgBox("Prop1 был установлен в " & testInstance.Prop1)
        ' Протестируйте метод и создайте событие.
        testInstance.Method1(5)
    Конец сабвуфера
     

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

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

     Private Sub Form1_Load (отправитель ByVal как System.Object,
                           ByVal e As System.EventArgs) Обрабатывает MyBase.Load
        Test() 'Проверить класс.
    Конец сабвуфера
     
  6. Запустите процедуру Test , нажав F5. Отображается сообщение «Prop1 было установлено на 9».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *