Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Otwórz nowy projekt aplikacji systemu Windows w języku Visual Basic.
Dodaj nowy moduł do projektu, klikając polecenie Dodaj moduł w menu Projekt .
Nazwij nowy moduł
Module1.vbi kliknij przycisk Dodaj. Zostanie wyświetlony kod nowego modułu.Zdefiniuj interfejs o nazwie
TestInterfacew ramachModule1, wpisującInterface TestInterfacemiędzy instrukcjamiModuleiEnd Module, a następnie naciskając ENTER. Edytor kodu wciętuje słowo kluczoweInterfacei dodaje instrukcjęEnd Interface, aby utworzyć blok kodu.Zdefiniuj właściwość, metodę i zdarzenie dla interfejsu, umieszczając następujący kod między instrukcjami
InterfaceiEnd 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
Dodaj klasę o nazwie
ImplementationClass, dodając następującą instrukcję do instrukcjiModule1, po instrukcjiEnd Interface, ale przed instrukcjąEnd Module, a następnie naciśnij ENTER.Class ImplementationClassJeśli pracujesz w zintegrowanym środowisku projektowym, edytor kodu dostarcza zgodną
End Classinstrukcję po naciśnięciu ENTER.Dodaj następującą
Implementsinstrukcję doImplementationClass, która nazywa interfejs, który implementuje klasa.Implements TestInterfaceGdy jest wymienione obok innych elementów na górze klasy lub struktury, instrukcja
Implementswskazuje, że klasa lub struktura implementuje interfejs.Jeśli pracujesz w zintegrowanym środowisku projektowym, Edytor kodu implementuje składowe klasy wymagane
TestInterfaceprzez naciśnięcie ENTER i możesz pominąć następny krok.Jeśli nie pracujesz w zintegrowanym środowisku projektowym, musisz zaimplementować wszystkie elementy członkowskie interfejsu
MyInterface. Dodaj następujący kod doImplementationClass, aby zaimplementowaćEvent1,Method1iProp1: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 PropertyInstrukcja
Implementsnazywa implementowany interfejs i element członkowski interfejsu.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 IntegerZwróć wartość
pvalwłaściwości get accessor.Return pvalUstaw wartość
pvalw akcesorze właściwości.pval = valueUkończ definicję,
Method1dodając następujący kod.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Aby przetestować implementację interfejsu
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.Dodaj następujące
testInstancepole doForm1klasy:Dim WithEvents testInstance As TestInterfaceDeklarując
testInstancejakoWithEvents,Form1klasa może obsługiwać swoje zdarzenia.Dodaj następującą procedurę obsługi zdarzeń do klasy
Form1w celu obsługi zdarzeń zgłaszanych przeztestInstance.Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubDodaj podroutynę o nazwie
TestdoForm1klasy, 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 SubProcedura
Testtworzy wystąpienie klasy, która implementujeMyInterface, przypisuje to wystąpienie dotestInstancepola, ustawia właściwość i uruchamia metodę za pośrednictwem interfejsu.Dodaj kod, aby wywołać procedurę
TestzForm1 Loadprocedury formularza uruchamiania:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubUruchom 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".