Návod: Vytvoření a implementace rozhraní (Visual Basic)

Rozhraní popisují vlastnosti, metody a události, ale nechejte podrobnosti implementace až do struktur nebo tříd.

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í.

Definování rozhraní

  1. Otevřete nový projekt aplikace pro Windows jazyka Visual Basic.

  2. Kliknutím na Přidat modul v nabídce Projekt přidejte do projektu nový modul.

  3. Pojmenujte nový modul Module1.vb a klikněte na Přidat. Zobrazí se kód nového modulu.

  4. Definujte rozhraní pojmenované TestInterface uvnitř Module1 zadáním Interface TestInterface mezi příkazy Module a End Module stisknutím klávesy ENTER. Editor kódu odsadí Interface klíčové slovo a přidá příkazEnd Interface, který vytvoří blok kódu.

  5. Definujte vlastnost, metodu a událost rozhraní umístěním následujícího kódu mezi Interface příkazy a End Interface příkazy:

    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žité k deklaraci členů třídy. Tento rozdíl odráží skutečnost, že rozhraní nemohou obsahovat kód implementace.

Implementace rozhraní

  1. Přidejte třídu pojmenovanou ImplementationClass přidáním následujícího příkazu do Module1příkazu , za End Interface příkaz, ale před End Module příkaz a stisknutím klávesy ENTER:

    Class ImplementationClass
    

    Pokud pracujete v integrovaném vývojovém prostředí, editor kódu při stisknutí klávesy ENTER poskytuje odpovídající End Class příkaz.

  2. Přidejte následující Implements příkaz , ImplementationClasskterý pojmenuje rozhraní, které třída implementuje:

    Implements TestInterface
    

    Pokud jsou uvedeny odděleně od jiných položek v horní části třídy nebo struktury, příkaz označuje, Implements že třída nebo struktura implementuje rozhraní.

    Pokud pracujete v integrovaném vývojovém prostředí, Editor kódu implementuje členy třídy vyžadované TestInterface stisknutím klávesy ENTER a můžete přeskočit další krok.

  3. Pokud v integrovaném vývojovém prostředí nepracujete, musíte implementovat všechny členy rozhraní MyInterface. Přidejte následující kód pro ImplementationClass implementaci Event1, Method1a 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
    

    Příkaz Implements pojmenuje implementovaný rozhraní a člen rozhraní.

  4. Dokončete definici Prop1 přidáním soukromého pole do třídy, která uložila hodnotu vlastnosti:

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

    Vrátí hodnotu z pval vlastnosti get accessor.

    Return pval
    

    Nastavte hodnotu pval v přístupovém objektu sady vlastností.

    pval = value
    
  5. Dokončete definici Method1 přidáním následujícího kódu.

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

Testování implementace rozhraní

  1. Klikněte pravým tlačítkem myši na spouštěcí formulář projektu 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í je volána Form1spouštěcí formulář .

  2. Do třídy přidejte následující testInstance pole Form1 :

    Dim WithEvents testInstance As TestInterface
    

    Deklarováním testInstance jako WithEventsForm1 může třída zpracovávat své události.

  3. Přidejte do třídy následující obslužnou rutinu Form1 události, která zpracovává události vyvolané testInstance:

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Přidejte do Form1 třídy podprogram pojmenovaný Test pro otestování třídy implementace:

    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 vytvoří instanci třídy, která implementuje MyInterface, přiřadí tuto instanci k testInstance poli, nastaví vlastnost a spustí metodu prostřednictvím rozhraní.

  5. Přidejte kód pro volání Test procedury z Form1 Load 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 Sub
    
  6. Spusťte proceduru Test stisknutím klávesy F5. Zobrazí se zpráva "Prop1 byla nastavena na 9". Po kliknutí na tlačítko OK se zobrazí zpráva "X parametr pro Metod1 je 5". Klikněte na OK a zobrazí se zpráva "Obslužná rutina události zachytila událost".

Viz také