Udostępnij za pośrednictwem


Interface — Instrukcja (Visual Basic)

Deklaruje nazwę interfejsu i wprowadza definicje członków, które składa się z interfejsu.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] _
Interface name [ ( Of typelist ) ]
    [ Inherits interfacenames ]
    [ [ modifiers ] Property membername ]
    [ [ modifiers ] Function membername ]
    [ [ modifiers ] Sub membername ]
    [ [ modifiers ] Event membername ]
    [ [ modifiers ] Interface membername ]
    [ [ modifiers ] Class membername ]
    [ [ modifiers ] Structure membername ]
End Interface

Części

Termin

Definicja

attributelist

Opcjonalne.Zobacz listy atrybutów.

accessmodifier

Opcjonalne.Może mieć jedną z następujących czynności:

See Poziomy dostępu w Visual Basic.

Shadows

Opcjonalne.Zobacz cienie.

name

Wymagane.Nazwa tego interfejsu.See Zadeklarowane nazwy elementów (Visual Basic).

Of

Opcjonalne.Określa, że jest to interfejs rodzajowy.

typelist

Wymagane w przypadku użycia Of — Klauzula (Visual Basic) słowa kluczowego.Lista parametrów typu dla tego interfejsu.Opcjonalnie każdego parametru typu może być deklarowana wariant za pomocą In i Out modyfikatorów rodzajowy.Zobacz typu Lista.

Inherits

Opcjonalne.Wskazuje, że ten interfejs dziedziczy atrybuty i członków innego interfejsu lub interfejsów.See Inherits — Instrukcja.

interfacenames

Wymagane w przypadku użycia Inherits instrukcji.Nazwy interfejsów, z których pochodzi ten interfejs.

modifiers

Opcjonalne.Modyfikatory właściwe dla członka interfejsu jest zdefiniowany.

Property

Opcjonalne.Definiuje właściwości, który jest członkiem interfejsu.

Function

Opcjonalne.Definiuje Function procedury, które jest członkiem interfejsu.

Sub

Opcjonalne.Definiuje Sub procedury, które jest członkiem interfejsu.

Event

Opcjonalne.Określa zdarzenie, które jest członkiem interfejsu.

Interface

Opcjonalne.Określa interfejs, który jest zagnieżdżony w obrębie tego interfejsu.Definicja interfejsu zagnieżdżonych musi być zakończone z End Interface instrukcji.

Class

Opcjonalne.Definiuje klasy, który jest członkiem interfejsu.Definicja klasy Członkowskich musi być zakończone z End Class instrukcji.

Structure

Opcjonalne.Definiuje strukturę, który jest członkiem interfejsu.Definicja struktury składnika musi być zakończone z End Structure instrukcji.

membername

Wymagane dla każdej właściwości, procedury, zdarzeń, interfejsu, klasy lub struktury zdefiniowane jako członka interfejsu.Nazwa elementu członkowskiego.

End Interface

Kończy działanie Interface definicji.

Uwagi

Interfejsu definiuje zestaw elementów członkowskich, takie jak można implementować właściwości i procedur, które klasy i struktur.Interfejs definiuje tylko podpisy członków, a nie ich wewnętrzne działanie.

Klasy lub struktury implementuje interfejs poprzez dostarczanie kodu dla każdego członka, zdefiniowane przez interfejs.Wreszcie gdy aplikacja tworzy wystąpienie tej klasy lub struktury, obiekt istnieje i działa w pamięci.Aby uzyskać więcej informacji, zobacz Obiekty i klasy w Visual Basic i Interfejsy (Visual Studio).

Można użyć Interface tylko na poziomie obszaru nazw lub moduł.Oznacza to, kontekście deklaracji dla interfejsu musi być plikiem źródłowym, obszaru nazw, klasy, struktury, moduł lub interfejsu i nie może być procedurą lub bloku.Aby uzyskać więcej informacji, zobacz Kontekst deklaracji i domyślne poziomy dostępu (Visual Basic).

Domyślnie interfejsy Friend (Visual Basic) dostępu.Można dostosować ich poziomy dostępu z modyfikatorów dostępu.Aby uzyskać więcej informacji, zobacz Poziomy dostępu w Visual Basic.

Zasady

  • Zagnieżdżanie interfejsów. Można zdefiniować jeden interfejs w innym.Zewnętrznego interfejsu jest nazywany zawierający interfejs, i Interfejs wewnętrzny jest nazywany zagnieżdżonych interfejsu.

  • Deklaracji członka. Deklarując właściwości lub procedury członka interfejsu są definiowane tylko podpisu tej właściwości lub procedury.Obejmuje to typ elementu (właściwość lub procedury), jego parametry i typy parametrów i jego typ zwracany.Z tego powodu definicji składnika używa tylko w jednym wierszu kodu i zakończeń sprawozdania, takie jak End Function lub End Property nie są prawidłowe w interfejsie.

    Natomiast podczas definiowania wyliczenie lub struktury, lub zagnieżdżonych klasy lub interfejsu jest konieczne uwzględnienie ich członkowie danych.

  • Modyfikatory Członkowskich. Nie można użyć dowolnego modyfikatorów dostępu podczas definiowania modułu członków, ani nie można określić Shared (Visual Basic) lub jakichkolwiek modyfikator procedury, z wyjątkiem Overloads (Visual Basic).Można zadeklarować któregokolwiek członka, z Shadows (Visual Basic), można użyć Default (Visual Basic) podczas definiowania właściwości, jak również ReadOnly (Visual Basic) lub WriteOnly (Visual Basic).

  • Dziedziczenie. Jeśli korzysta z interfejsu Inherits — Instrukcja, można określić jeden lub więcej interfejsach podstawowych.Dwa interfejsy mogą dziedziczyć, nawet jeśli definiują członek o tej samej nazwie.Jeśli tak zrobisz, kodeks wykonawczy należy użyć nazwy kwalifikacji, aby określić Członkowskie, które implementuje.

    Interfejs nie może dziedziczyć z innego interfejsu z bardziej restrykcyjny poziom dostępu.Na przykład Public nie można dziedziczyć interfejsu Friend interfejsu.

    Interfejs nie może dziedziczyć interfejsu w nim zagnieżdżone.

  • Implementacja. Kiedy używa klasy Implements — Klauzula (Visual Basic) instrukcji w celu wdrożenia tego interfejsu, to musi implementować każdego członka zdefiniowanych w interfejsie.Ponadto każdy podpis w kodzie wykonawczych musi dokładnie odpowiadać odpowiedni podpis zdefiniowane w tym interfejsie.Jednakże nazwa elementu członkowskiego w kodzie wykonawczych nie pasuje do nazwy Członkowskie, zgodnie z definicją w interfejsie.

    Gdy klasa jest wykonania procedury, nie można wyznaczyć procedury jako Shared.

  • Właściwość Default. Interfejs można określić, co najwyżej jedną właściwość jako jej domyślną właściwość, mogą odwoływać się bez używania nazwy właściwości.Określić takie właściwości, oświadczając z Default (Visual Basic) modyfikator.

    Zawiadomienie to oznacza interfejs można zdefiniować właściwości domyślnej tylko wtedy, gdy brak dziedziczy.

Zachowanie

  • Poziom dostępu. Wszyscy członkowie interfejsu domyśle mają Public (Visual Basic) dostępu.Wszelkie modyfikator dostępu nie można użyć przy definiowaniu członka.Jednakże wykonawczych interfejsu klasy można zadeklarować poziom dostępu dla każdego członka wdrożone.

    Jeśli wystąpienie klasy można przypisać do zmiennej, poziom dostępu swoich członków może zależeć od tego, czy typ danych zmiennej jest podległym interfejsie lub wykonawczych klasy.Poniższy przykład ilustruje to.

    Public Interface IDemo
        Sub doSomething()
    End Interface 
    Public Class implementIDemo
        Implements IDemo
        Private Sub doSomething() Implements IDemo.doSomething
        End Sub 
    End Class 
    Dim varAsInterface As IDemo = New implementIDemo()
    Dim varAsClass As implementIDemo = New implementIDemo()
    

    Jeśli dostęp za pośrednictwem członków klasy varAsInterface, wszystkie one mają dostęp publiczny.Jednakże jeśli dostęp za pośrednictwem członków varAsClass, Sub procedury doSomething ma dostęp do prywatnych.

  • Zakres. Interfejs jest w zasięgu całej przestrzeni nazw, klasy, struktury lub moduł.

    Zakres każdego członka interfejsu jest cały interfejs.

  • Okres istnienia. Interfejs sam nie jest okres istnienia klucza, podobnie jak jego członków.Kiedy klasy implementuje interfejs i obiekt jest tworzona jako instancję obiektu klasy, ma istnienia w aplikacji, w którym jest uruchomiony.Aby uzyskać więcej informacji, zobacz "Okres istnienia" w Class — Instrukcja (Visual Basic).

Przykład

W poniższym przykładzie użyto Interface instrukcji, aby zdefiniować interfejsu o nazwie thisInterface, które muszą być wykonywane z Property instrukcji i Function instrukcji.

Public Interface thisInterface
    Property thisProp(ByVal thisStr As String) As Char 
    Function thisFunc(ByVal thisInt As Integer) As Integer 
End Interface

Należy zauważyć, że Property i Function sprawozdania nie wprowadzają bloków, kończąc na End Property i End Function w interfejsie.Interfejs definiuje podpisy swoich członków.Pełne Property i Function bloków pojawiają się w klasie, który implementuje thisInterface.

Zobacz też

Informacje

Class — Instrukcja (Visual Basic)

Module — Instrukcja

Structure — Instrukcja

Property — Instrukcja

Function — Instrukcja (Visual Basic)

Sub — Instrukcja (Visual Basic)

In (modyfikator ogólny) (Visual Basic)

Out (modyfikator ogólny) (Visual Basic)

Koncepcje

Typy ogólne w Visual Basic (Visual Basic)

Wariancje w interfejsach (C# i Visual Basic)

Inne zasoby

Interfejsy (Visual Studio)