Genomgång: Skapa och implementera gränssnitt (Visual Basic)
Gränssnitt beskriver egenskaperna för egenskaper, metoder och händelser, men lämnar implementeringsinformationen upp till strukturer eller klasser.
Den här genomgången visar hur du deklarerar och implementerar ett gränssnitt.
Kommentar
Den här genomgången innehåller inte information om hur du skapar ett användargränssnitt.
Kommentar
Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassa IDE.
Så här definierar du ett gränssnitt
Öppna ett nytt Visual Basic Windows-programprojekt.
Lägg till en ny modul i projektet genom att klicka på Lägg till modul på Projekt-menyn .
Ge den nya modulen
Module1.vb
namnet och klicka på Lägg till. Koden för den nya modulen visas.Definiera ett gränssnitt med namnet
TestInterface
inom genom attInterface TestInterface
skriva mellan - ochEnd Module
-uttryckenModule
och sedanModule1
trycka på RETUR. Kodredigeraren drar in nyckelordetInterface
och lägger till enEnd Interface
instruktion för att skapa ett kodblock.Definiera en egenskap, metod och händelse för gränssnittet genom att placera följande kod mellan - och-uttrycken
Interface
End Interface
:Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementering
Du kanske märker att syntaxen som används för att deklarera gränssnittsmedlemmar skiljer sig från den syntax som används för att deklarera klassmedlemmar. Den här skillnaden återspeglar det faktum att gränssnitt inte kan innehålla implementeringskod.
Implementera gränssnittet
Lägg till en klass med namnet
ImplementationClass
genom att lägga till följande -instruktion iModule1
, efter -instruktionenEnd Interface
men före -instruktionenEnd Module
och tryck sedan på RETUR:Class ImplementationClass
Om du arbetar i den integrerade utvecklingsmiljön tillhandahåller kodredigeraren en matchande
End Class
instruktion när du trycker på RETUR.Lägg till följande
Implements
instruktion iImplementationClass
, som namnger gränssnittet som klassen implementerar:Implements TestInterface
När instruktionen visas separat från andra objekt överst i en klass eller struktur anger den
Implements
att klassen eller strukturen implementerar ett gränssnitt.Om du arbetar i den integrerade utvecklingsmiljön implementerar kodredigeraren de klassmedlemmar som krävs när
TestInterface
du trycker på RETUR, och du kan hoppa över nästa steg.Om du inte arbetar i den integrerade utvecklingsmiljön måste du implementera alla medlemmar i gränssnittet
MyInterface
. Lägg till följande kod för attImplementationClass
implementeraEvent1
,Method1
ochProp1
: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
Instruktionen
Implements
namnger den gränssnitts- och gränssnittsmedlem som implementeras.Slutför definitionen av
Prop1
genom att lägga till ett privat fält i klassen som lagrade egenskapsvärdet:' Holds the value of the property. Private pval As Integer
Returnera värdet för
pval
från egenskapen hämta accessor.Return pval
Ange värdet
pval
för i egenskapsuppsättningsåtkomstorn.pval = value
Slutför definitionen av
Method1
genom att lägga till följande kod.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Testa implementeringen av gränssnittet
Högerklicka på startformuläret för projektet i Solution Explorer och klicka på Visa kod. Redigeraren visar klassen för startformuläret. Startformuläret kallas
Form1
som standard .Lägg till följande
testInstance
fält iForm1
klassen:Dim WithEvents testInstance As TestInterface
Genom att
testInstance
deklarera somWithEvents
kanForm1
klassen hantera sina händelser.Lägg till följande händelsehanterare i
Form1
klassen för att hantera händelser som genereras avtestInstance
:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Lägg till en underrutin med namnet
Test
iForm1
klassen för att testa implementeringsklassen: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
Proceduren
Test
skapar en instans av klassen som implementerarMyInterface
, tilldelar instansentestInstance
till fältet, anger en egenskap och kör en metod via gränssnittet.Lägg till kod för att anropa proceduren
Test
från proceduren i startformuläretForm1 Load
:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End Sub
Kör proceduren
Test
genom att trycka på F5. Meddelandet "Prop1 har angetts till 9" visas. När du har klickat på OK visas meddelandet "X-parametern för Metod1 är 5". Klicka på OK så visas meddelandet "Händelsehanteraren fångade händelsen".