Freigeben über


Vorgehensweise: Deklarieren und Aufrufen einer Standardeigenschaft in Visual Basic

Eine Standardeigenschaft ist eine Klassen- oder Struktureigenschaft, auf die Ihr Code zugreifen kann, ohne sie anzugeben. Wenn beim Aufrufen von Codenamen eine Klasse oder Struktur, jedoch nicht eine Eigenschaft genannt wird, und der Kontext den Zugriff auf eine Eigenschaft erlaubt, löst Visual Basic den Zugriff auf die Standardeigenschaft dieser Klasse oder Struktur aus, falls eine vorhanden ist.

Eine Klasse oder Struktur kann höchstens eine Standardeigenschaft aufweisen. Sie können jedoch eine Standardeigenschaft überladen und über mehrere Versionen verfügen.

Weitere Informationen finden Sie unter "Standard".

So deklarieren Sie eine Standardeigenschaft

  1. Deklarieren Sie die Eigenschaft auf die normale Weise. Geben Sie das Schlüsselwort Shared oder Private nicht an.

  2. Schließen Sie das Default Schlüsselwort in die Eigenschaftsdeklaration ein.

  3. Geben Sie mindestens einen Parameter für die Eigenschaft an. Sie können keine Standardeigenschaft definieren, die nicht mindestens ein Argument akzeptiert.

    Default Property myProperty(ByVal index As Integer) As String
    

So rufen Sie eine Standardeigenschaft auf

  1. Deklarieren Sie eine Variable des enthaltenden Klassen- oder Strukturtyps.

    Dim x As New class1(3)
    
  2. Verwenden Sie den Variablennamen allein in einem Ausdruck, in dem Sie normalerweise den Eigenschaftennamen einschließen würden.

    MsgBox(x)
    
  3. Folgen Sie dem Variablennamen mit einer Argumentliste in Klammern. Eine Standardeigenschaft muss mindestens ein Argument annehmen.

    MsgBox(x(1))
    
  4. Um den Wert der Standardeigenschaft abzurufen, verwenden Sie den Variablennamen mit einer Argumentliste in einem Ausdruck oder nach dem Gleichheitszeichen (=) in einer Zuordnungsanweisung.

    MsgBox(x(1) & x(2) & x(3))
    
  5. Um den Standardeigenschaftswert festzulegen, verwenden Sie den Variablennamen mit einer Argumentliste auf der linken Seite einer Zuordnungsanweisung.

    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    
  6. Sie können den Standardeigenschaftennamen immer zusammen mit dem Variablennamen angeben, genau wie für den Zugriff auf jede andere Eigenschaft.

    x.myProperty(1) = "Hello"
    x.myProperty(2) = " "
    x.myProperty(3) = "World"
    

Beispiel 1

Im folgenden Beispiel wird eine Standardeigenschaft für eine Klasse deklariert.

Public Class class1
    Private myStrings() As String
    Sub New(ByVal size As Integer)
        ReDim myStrings(size)
    End Sub
    Default Property myProperty(ByVal index As Integer) As String
        Get
            ' The Get property procedure is called when the value
            ' of the property is retrieved.
            Return myStrings(index)
        End Get
        Set(ByVal Value As String)
            ' The Set property procedure is called when the value
            ' of the property is modified.
            ' The value to be assigned is passed in the argument 
            ' to Set.
            myStrings(index) = Value
        End Set
    End Property
End Class

Beispiel 2

Im folgenden Beispiel wird veranschaulicht, wie die Standardeigenschaft myProperty für die Klasse class1aufgerufen wird. Die drei Zuordnungsanweisungen speichern Werte in myProperty, und der MsgBox Aufruf liest die Werte.

Sub Test()
    Dim x As New class1(3)
    x(1) = "Hello"
    x(2) = " "
    x(3) = "World"
    MsgBox(x(1) & x(2) & x(3))
End Sub

Die häufigste Verwendung einer Standardeigenschaft ist die Item[] Eigenschaft für verschiedene Auflistungsklassen.

Robuste Programmierung

Standardeigenschaften können zu einer geringen Reduzierung von Quellcodezeichen führen, aber sie können das Lesen des Codes erschweren. Wenn der aufrufende Code nicht mit Ihrer Klasse oder Struktur vertraut ist, kann er beim Verweis auf den Klassen- oder Strukturnamen nicht sicher sein, ob dieser Verweis auf die Klasse oder Struktur selbst zugreift oder ob er eine Standardeigenschaft anspricht. Dies kann zu Compilerfehlern oder subtilen Laufzeitlogikfehlern führen.

Sie können die Wahrscheinlichkeit von Standardeigenschaftenfehlern etwas verringern, indem Sie immer die Option Strict-Anweisung verwenden, um die Compilertypüberprüfung auf festzulegen On.

Wenn Sie planen, eine vordefinierte Klasse oder Struktur in Ihrem Code zu verwenden, müssen Sie bestimmen, ob sie über eine Standardeigenschaft verfügt, und wenn ja, was der Name ist.

Aufgrund dieser Nachteile sollten Sie in Erwägung ziehen, die Standardeigenschaften nicht zu definieren. Zur Lesbarkeit von Code sollten Sie auch in Betracht ziehen, immer auf alle Eigenschaften explizit zu verweisen, sogar Standardeigenschaften.

Siehe auch