Udostępnij za pośrednictwem


Przewodnik: tworzenie i implementowanie interfejsów (Visual Basic)

Interfejsy opisują charakterystykę właściwości, metod i zdarzeń, ale pozostawiają szczegóły implementacji do struktur lub klas.

W tym przewodniku przedstawiono sposób deklarowania i implementowania interfejsu.

Uwaga / Notatka

Ten przewodnik nie zawiera informacji o sposobie tworzenia interfejsu użytkownika.

Uwaga / Notatka

Na komputerze mogą być wyświetlane różne nazwy lub lokalizacje niektórych elementów interfejsu użytkownika programu Visual Studio w poniższych instrukcjach. Wersja programu Visual Studio i ustawienia, których używasz, określają te elementy. Aby uzyskać więcej informacji, zobacz Personalizowanie środowiska IDE.

Aby zdefiniować interfejs

  1. Otwórz nowy projekt aplikacji systemu Windows w języku Visual Basic.

  2. Dodaj nowy moduł do projektu, klikając polecenie Dodaj moduł w menu Projekt .

  3. Nazwij nowy moduł Module1.vb i kliknij przycisk Dodaj. Zostanie wyświetlony kod nowego modułu.

  4. Zdefiniuj interfejs o nazwie TestInterface w ramach Module1 , wpisując Interface TestInterface między instrukcjami Module i End Module , a następnie naciskając ENTER. Edytor kodu wciętuje słowo kluczowe Interface i dodaje instrukcję End Interface, aby utworzyć blok kodu.

  5. Zdefiniuj właściwość, metodę i zdarzenie dla interfejsu, umieszczając następujący kod między instrukcjami Interface i End Interface :

    Property Prop1() As Integer
    Sub Method1(ByVal X As Integer)
    Event Event1()
    

Implementacja

Można zauważyć, że składnia używana do deklarowania składowych interfejsu różni się od składni używanej do deklarowania składowych klas. Ta różnica odzwierciedla fakt, że interfejsy nie mogą zawierać kodu implementacji.

Aby zaimplementować interfejs

  1. Dodaj klasę o nazwie ImplementationClass, dodając następującą instrukcję do instrukcji Module1, po instrukcji End Interface, ale przed instrukcją End Module, a następnie naciśnij ENTER.

    Class ImplementationClass
    

    Jeśli pracujesz w zintegrowanym środowisku projektowym, edytor kodu dostarcza zgodną End Class instrukcję po naciśnięciu ENTER.

  2. Dodaj następującą Implements instrukcję do ImplementationClass, która nazywa interfejs, który implementuje klasa.

    Implements TestInterface
    

    Gdy jest wymienione obok innych elementów na górze klasy lub struktury, instrukcja Implements wskazuje, że klasa lub struktura implementuje interfejs.

    Jeśli pracujesz w zintegrowanym środowisku projektowym, Edytor kodu implementuje składowe klasy wymagane TestInterface przez naciśnięcie ENTER i możesz pominąć następny krok.

  3. Jeśli nie pracujesz w zintegrowanym środowisku projektowym, musisz zaimplementować wszystkie elementy członkowskie interfejsu MyInterface. Dodaj następujący kod do ImplementationClass, aby zaimplementować Event1, Method1 i 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
    

    Instrukcja Implements nazywa implementowany interfejs i element członkowski interfejsu.

  4. Wypełnij definicję Prop1 , dodając pole prywatne do klasy, która przechowywała wartość właściwości:

    ' Holds the value of the property.
    Private pval As Integer
    

    Zwróć wartość pval właściwości get accessor.

    Return pval
    

    Ustaw wartość pval w akcesorze właściwości.

    pval = value
    
  5. Ukończ definicję, Method1 dodając następujący kod.

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

Aby przetestować implementację interfejsu

  1. Kliknij prawym przyciskiem myszy formularz startowy projektu w Eksploratorze rozwiązań, a następnie kliknij pozycję Wyświetl kod. W edytorze zostanie wyświetlona klasa formularza uruchamiania. Domyślnie formularz uruchamiania nosi nazwę Form1.

  2. Dodaj następujące testInstance pole do Form1 klasy:

    Dim WithEvents testInstance As TestInterface
    

    Deklarując testInstance jako WithEvents, Form1 klasa może obsługiwać swoje zdarzenia.

  3. Dodaj następującą procedurę obsługi zdarzeń do klasy Form1 w celu obsługi zdarzeń zgłaszanych przez testInstance.

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Dodaj podroutynę o nazwie Test do Form1 klasy, aby przetestować klasę implementacji:

    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
    

    Procedura Test tworzy wystąpienie klasy, która implementuje MyInterface, przypisuje to wystąpienie do testInstance pola, ustawia właściwość i uruchamia metodę za pośrednictwem interfejsu.

  5. Dodaj kod, aby wywołać procedurę Test z Form1 Load procedury formularza uruchamiania:

    Private Sub Form1_Load(ByVal sender As System.Object,
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Test() ' Test the class.
    End Sub
    
  6. Uruchom procedurę Test , naciskając F5. Zostanie wyświetlony komunikat "Prop1 został ustawiony na 9". Po kliknięciu OK pojawi się komunikat "Parametr X dla metody1 wynosi 5". Kliknij przycisk OK, a zostanie wyświetlony komunikat "Program obsługi zdarzeń przechwycił zdarzenie".

Zobacz także