Návod: Vytvoření a implementace rozhraní (Visual Basic)
Rozhraní popisují charakteristiky vlastností, metod a událostí, ale podrobnosti implementace ponechte na strukturách nebo třídách.
Tento návod ukazuje, jak deklarovat a implementovat rozhraní.
Poznámka
Tento názorný postup neposkytuje informace o tom, jak vytvořit uživatelské rozhraní.
Poznámka
Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí (IDE).
Definování rozhraní
Otevřete nový projekt Visual Basic Windows aplikace.
Do projektu přidejte nový modul kliknutím na Přidat modul v Project nabídky.
Pojmete nový modul a
Module1.vbklikněte na Přidat. Zobrazí se kód nového modulu.Definujte rozhraní s názvem uvnitř zadáním mezi příkazy a a
TestInterfaceModule1potom stisknutímInterface TestInterfaceModuleEnd Moduleklávesy ENTER. Editor kódu odsadí klíčové slovo a přidá příkaz pro vytvoření blokuInterfaceEnd Interfacekódu.Definujte vlastnost, metodu a událost pro rozhraní umístěním následujícího kódu mezi
InterfacepříkazyEnd Interfacea :Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementace
Můžete si všimnout, že syntaxe použitá k deklaraci členů rozhraní se liší od syntaxe používané k deklaraci členů třídy. Tento rozdíl odráží skutečnost, že rozhraní nemohou obsahovat implementační kód.
Implementace rozhraní
Přidejte třídu s názvem přidáním následujícího příkazu do , za příkaz , ale před příkaz a
ImplementationClassModule1stisknutímEnd InterfaceEnd Moduleklávesy ENTER:Class ImplementationClassPokud pracujete v integrovaném vývojovém prostředí, editor kódu při stisknutí klávesy ENTER předá
End Classodpovídající příkaz.Do souboru
ImplementspřidejteImplementationClassnásledující příkaz , který bude na názvy rozhraní, které třída implementuje:Implements TestInterfacePokud je uveden odděleně od ostatních položek v horní části třídy nebo struktury, příkaz indikuje, že třída nebo
Implementsstruktura implementuje rozhraní.Pokud pracujete v integrovaném vývojovém prostředí, editor kódu implementuje členy třídy vyžadované stisknutím klávesy ENTER a můžete přeskočit
TestInterfacedalší krok.Pokud nepracujete v integrovaném vývojovém prostředí, musíte implementovat všechny členy rozhraní
MyInterface. Do souboru přidejte následujícíImplementationClasskód pro implementaci , aEvent1Method1Prop1: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 PropertyPříkaz
Implementsmá název implementované rozhraní a člena rozhraní.Dokončete definici
Prop1přidáním privátního pole do třídy, která uložila hodnotu vlastnosti:' Holds the value of the property. Private pval As IntegerVrátí hodnotu z
pvalvlastnosti get accessor.Return pvalNastavte hodnotu v
pvalpřistupovači sady vlastností.pval = valueDokončete
Method1definici souboru přidáním následujícího kódu.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Testování implementace rozhraní
Klikněte pravým tlačítkem na spouštěcí formulář pro váš projekt v Průzkumník řešení a klikněte na Zobrazit kód. Editor zobrazí třídu pro spouštěcí formulář. Ve výchozím nastavení se spouštěcí formulář nazývá
Form1.Do třídy
testInstancepřidejte následujícíForm1pole:Dim WithEvents testInstance As TestInterfaceDeklarováním
testInstancejakoWithEventsmůže třída zpracovatForm1své události.Přidejte následující obslužnou rutinu události
Form1do třídy pro zpracování událostí vyvolanétestInstance:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubPřidejte do třídy podprogram
Tests názvem , abysteForm1otestování implementační třídy: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 vytvoří instanci třídy , která implementuje , přiřadí tuto instanci k poli, nastaví vlastnost a spustí
TestMyInterfacetestInstancemetodu prostřednictvím rozhraní .Přidejte kód pro
TestvoláníForm1 Loadprocedury z procedury spouštěcího formuláře:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubStisknutím
Testklávesy F5 spusťte proceduru. Zobrazí se zpráva Prop1 byla nastavená na 9. Po kliknutí na OK se zobrazí zpráva "Parametr X pro metodu Method1 je 5". Klikněte na OK a zobrazí se zpráva Obslužná rutina události zachytila událost.