|
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
|
Übersetzung
Original
|
Interface-Anweisung (Visual Basic)
[ <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
|
|
|
|
attributelist |
|
|
accessmodifier |
|
|
Shadows |
|
|
name |
|
|
Of |
|
|
typelist |
|
|
Inherits |
|
|
interfacenames |
|
|
modifiers |
|
|
Property |
|
|
Function |
|
|
Sub |
|
|
Event |
|
|
Interface |
|
|
Class |
|
|
Structure |
|
|
membername |
|
|
End Interface |
|
Regeln
-
Schachteln von Schnittstellen. Sie können eine Schnittstelle in einer anderen Schnittstelle definieren. Die äußere Schnittstelle wird als enthaltende Schnittstelle und die innere Schnittstelle als geschachtelte Schnittstelle bezeichnet. -
Memberdeklaration. Wenn Sie eine Eigenschaft oder Prozedur als Member einer Schnittstelle deklarieren, definieren Sie nur die Signatur der betreffenden Eigenschaft oder Prozedur. Diese umfasst den Elementtyp (Eigenschaft oder Prozedur), ihre Parameter und Parametertypen und ihren Rückgabetyp. Aus diesem Grund erfolgt die Memberdefinition in einer einzigen Codezeile, und Anweisungen zum Beenden, z. B. End Function oder End Property, sind in Schnittstellen nicht gültig. Wenn Sie hingegen eine Enumeration, eine Struktur, eine geschachtelte Klasse oder geschachtelte Schnittstelle definieren, müssen ihre Datenmember in der Definition enthalten sein. -
Membermodifizierer. Beim Definieren von Modulmembern können Sie keine Zugriffsmodifizierer verwenden, und Sie können weder Shared (Visual Basic) noch einen anderen Prozedurmodifizierer außer Overloads (Visual Basic) angeben. Sie können jeden Member mit Shadows (Visual Basic) deklarieren, und Sie können Default (Visual Basic) sowie ReadOnly (Visual Basic) und WriteOnly (Visual Basic) beim Definieren einer Eigenschaft verwenden. -
Vererbung. Wenn die Schnittstelle das Inherits-Anweisung verwendet, können Sie eine oder mehrere Basisschnittstellen angeben. Sie können zwei Schnittstellen vererben, auch wenn jede Schnittstelle einen Member mit dem gleichen Namen definiert. In diesem Fall muss der implementierende Code Namensqualifizierung verwenden, um anzugeben, welcher Member implementiert wird. Eine Schnittstelle kann nicht von einer anderen Schnittstelle mit einer restriktiveren Zugriffsebene erben. Eine Schnittstelle mit Public-Zugriff kann beispielweise nicht von einer Schnittstelle mit Friend-Zugriff erben. Eine Schnittstelle kann nicht von einer Schnittstelle erben, die in ihr geschachtelt ist. -
Implementierung. Wenn eine Klasse die Implements-Klausel (Visual Basic)-Anweisung verwendet, um eine Schnittstelle zu implementieren, muss sie jeden in der Schnittstelle definierten Member implementieren. Außerdem muss jede Signatur im implementierenden Code genau mit der entsprechenden Signatur übereinstimmen, die in dieser Schnittstelle definiert ist. Der Name des Members im implementierenden Code muss jedoch nicht mit dem in der Schnittstelle definierten Membernamen übereinstimmen. Wenn eine Klasse eine Prozedur implementiert, kann sie die Prozedur nicht als Shared festlegen. -
Standardeigenschaft. Für eine Schnittstelle kann höchstens eine Eigenschaft als Standardeigenschaft angegeben werden, auf die ohne Angabe des Eigenschaftennamens verwiesen werden kann. Sie geben eine solche Eigenschaft an, indem Sie sie mit dem Default (Visual Basic)-Modifizierer deklarieren. Beachten Sie, dass daher eine Schnittstelle nur eine Standardeigenschaft definieren kann, wenn sie keine Standardeigenschaft erbt.
Verhalten
-
Zugriffsebene. Alle Schnittstellenmember verfügen implizit über Public (Visual Basic)-Zugriff. Sie können keinen Zugriffsmodifizierer verwenden, wenn Sie einen Member definieren. Eine Klasse jedoch, die die Schnittstelle implementiert, kann für jeden implementierten Member eine Zugriffsebene deklarieren. Wenn Sie einer Variablen eine Klasseninstanz zuweisen, kann die Zugriffsebene ihrer Member davon abhängen, ob der Datentyp der Variablen die zugrunde liegende Schnittstelle oder die implementierende Klasse ist. Dies wird anhand des folgenden Beispiels veranschaulicht: 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()
Wenn Sie auf Klassenmember über varAsInterface zugreifen, weisen sie alle öffentlichen Zugriff auf. Wenn Sie jedoch auf Member über varAsClass zugreifen, weist die Sub-Prozedur doSomething privaten Zugriff auf. -
Gültigkeitsbereich. Der Gültigkeitsbereich einer Schnittstelle umfasst ihren Namespace, ihre Klasse, ihre Struktur oder ihr Modul. Der Gültigkeitsbereich jedes Schnittstellenmembers umfasst die gesamte Schnittstelle. -
Lebensdauer. Weder Schnittstellen noch ihre Member verfügen über eine Lebensdauer. Wenn eine Klasse eine Schnittstelle implementiert und ein Objekt als Instanz dieser Klasse erstellt wird, verfügt das Objekt über eine Lebensdauer in der Anwendung, in der es ausgeführt wird. Weitere Informationen finden Sie in Class-Anweisung (Visual Basic) unter "Lebensdauer".
Public Interface thisInterface Property thisProp(ByVal thisStr As String) As Char Function thisFunc(ByVal thisInt As Integer) As Integer End Interface