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:
|
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)
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)