Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Interfaces beschrijven de kenmerken van eigenschappen, methoden en gebeurtenissen, maar laten de implementatiedetails over tot structuren of klassen.
In dit scenario ziet u hoe u een interface declareert en implementeert.
Opmerking
Deze handleiding bevat geen informatie over het maken van een gebruikersinterface.
Opmerking
Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDEvoor meer informatie.
Een interface definiëren
Open een nieuw Visual Basic Windows-toepassingsproject.
Voeg een nieuwe module toe aan het project door in het menu Project op Module toevoegen te klikken.
Geef de nieuwe module
Module1.vbeen naam en klik op Toevoegen. De code voor de nieuwe module wordt weergegeven.Definieer een interface met de naam
TestInterfacebinnenModule1doorInterface TestInterfacete typen tussen deModuleenEnd Moduleinstructies en vervolgens op Enter te drukken. De Code Editor springt hetInterfacetrefwoord in en voegt eenEnd Interfacestatement toe om een codeblok te vormen.Definieer een eigenschap, methode en gebeurtenis voor de interface door de volgende code tussen de
InterfaceenEnd Interfaceinstructies te plaatsen:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementatie
U ziet mogelijk dat de syntaxis die wordt gebruikt om interfaceleden te declareren verschilt van de syntaxis die wordt gebruikt om klasseleden te declareren. Dit verschil weerspiegelt het feit dat interfaces geen implementatiecode kunnen bevatten.
De interface implementeren
Voeg een klasse toe met de naam
ImplementationClassdoor de volgende instructie toe te voegen aanModule1, na deEnd Interfaceinstructie, maar vóór deEnd Moduleinstructie en druk vervolgens op Enter:Class ImplementationClassAls u in de geïntegreerde ontwikkelomgeving werkt, levert de Code-editor een overeenkomende
End Classinstructie wanneer u op Enter drukt.Voeg de volgende
Implementsinstructie toe aanImplementationClass, waarmee de interface wordt genoemd die door de klasse wordt geïmplementeerd:Implements TestInterfaceWanneer de instructie afzonderlijk van andere items boven aan een klasse of structuur wordt vermeld, geeft de
Implementsinstructie aan dat de klasse of structuur een interface implementeert.Als u in de geïntegreerde ontwikkelomgeving werkt, implementeert de Code-editor de klasseleden die nodig zijn
TestInterfacewanneer u op Enter drukt en kunt u de volgende stap overslaan.Als u niet in de geïntegreerde ontwikkelomgeving werkt, moet u alle leden van de interface
MyInterfaceimplementeren. Voeg de volgende code toe aanImplementationClassomEvent1,Method1enProp1te implementeren.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 PropertyDe
Implementsinstructie noemt de interface en het interfacelid dat wordt geïmplementeerd.Voltooi de definitie door
Prop1een privéveld toe te voegen aan de klasse die de eigenschapswaarde heeft opgeslagen:' Holds the value of the property. Private pval As IntegerRetourneert de waarde van de
pvaleigenschap get accessor.Return pvalStel de waarde
pvalin in de eigenschapssettoegankelijkheid.pval = valueVoltooi de definitie door
Method1de volgende code toe te voegen.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
De implementatie van de interface testen
Klik met de rechtermuisknop op het opstartformulier voor uw project in Solution Explorer en klik op Code weergeven. De editor geeft de klasse voor uw opstartformulier weer. Standaard wordt het opstartformulier aangeroepen
Form1.Voeg het volgende
testInstanceveld toe aan deForm1klasse:Dim WithEvents testInstance As TestInterfaceDoor te declareren
testInstancealsWithEvents, kan deForm1klasse de gebeurtenissen afhandelen.Voeg de volgende gebeurtenis-handler toe aan de
Form1klasse om gebeurtenissen te verwerken die worden gegenereerd doortestInstance:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubVoeg een subroutine genaamd
Testtoe aan deForm1klasse om de implementatieklasse te testen.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 SubDe
Testprocedure maakt een exemplaar van de klasse die implementeertMyInterface, wijst dat exemplaar toe aan hettestInstanceveld, stelt een eigenschap in en voert een methode uit via de interface.Voeg code toe om de
Testprocedure aan te roepen vanuit deForm1 Loadprocedure van uw opstartformulier:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubVoer de
Testprocedure uit door op F5 te drukken. Het bericht 'Prop1 is ingesteld op 9' wordt weergegeven. Nadat u op OK hebt geklikt, wordt het bericht 'De X-parameter voor Methode1 is 5' weergegeven. Klik op OK en het bericht 'De gebeurtenis-handler heeft de gebeurtenis gedetecteerd' wordt weergegeven.