Freigeben über


Änderungen von Standardeigenschaften für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

Zur Vereinfachung und besseren Lesbarkeit von Code wurde in Visual Basic 2008 die Unterstützung von Standardeigenschaften aktualisiert.

Visual Basic 6.0

In Visual Basic 6.0 werden Standardeigenschaften für Objekte unterstützt. Für ein Label-Steuerelement ist Caption z. B. die Standardeigenschaft. Die beiden Zuweisungen im folgenden Beispiel sind gleichwertig:

Dim lbl As Label 
lbl = "Important" 
lbl.Caption = "Important" 

Während Standardeigenschaften beim Schreiben von Visual Basic-Code einerseits den Programmieraufwand reduzieren, bergen sie andererseits auch einige Nachteile:

  • Code wird dadurch unübersichtlicher. Wenn Sie mit dem Label-Steuerelement nicht vertraut sind, können Sie im vorangehenden Beispiel in der ersten Zuweisung nicht erkennen, ob die Zeichenfolge "Important" direkt in der Variablen lbl oder in einer Standardeigenschaft gespeichert wird.

  • Wenn Sie im Code ein Objekt verwenden möchten, ist nicht immer ohne weiteres erkennbar, ob es eine Standardeigenschaft hat und, falls ja, um welche Eigenschaft es sich handelt.

  • Standardeigenschaften erfordern in der Visual Basic-Sprache die Verwendung der Set-Anweisung. Das folgende Beispiel verdeutlicht, wie mithilfe von Set angegeben wird, dass anstelle einer Standardeigenschaft ein Objektverweis zugewiesen werden muss.

    Dim lbl1 As Label, lbl2 As Label 
    lbl1 = "Saving" ' Assign a value to lbl1's Caption property. 
    lbl2 = lbl1       ' Replace lbl2's Caption property with lbl1's. 
    Set lbl2 = lbl1   ' Replace lbl2 with an object reference to lbl1. 
    

Visual Basic 2008

In Visual Basic 2008 werden Standardeigenschaften nur unterstützt, wenn sie Argumente annehmen. Aufgrund dieser Syntaxänderung sind die Let-Anweisung und die Set-Anweisung zur Angabe der erforderlichen Zuweisung überflüssig. Sie werden auch nicht in Zuweisungsanweisungen verwendet. Die Caption-Eigenschaft des Label-Steuerelements wird durch die Text-Eigenschaft ersetzt, sodass das vorangehende Beispiel folgendermaßen umgeschrieben werden kann.

Dim L1, L2 As New Label   ' Both become type Label
                          ' in the new version of Visual Basic.
L1.Text = "Saving"        ' Assign Text property. 
L2.Text = L1.Text         ' Copy Text property. 
L2 = L1                   ' Copy object reference.

Let ist in Visual Basic 2008 weiterhin ein reserviertes Wort, obwohl es keine syntaktische Verwendung hat. Dadurch werden Verwechslungen mit früheren Bedeutungen ausgeschlossen. Die Set-Anweisung wird in Visual Basic 2008 für Eigenschaftenprozeduren verwendet, mit denen der Wert einer Eigenschaft festgelegt wird.

Parametrisierte Eigenschaften

Standardeigenschaften, die Argumente annehmen, sind nicht zweideutig und werden in Visual Basic 2008 unterstützt. Standardeigenschaften sind meistens in Auflistungsklassen enthalten. Im System.Windows.Forms-Namespace z. B. unterstützt die Form-Klasse die folgende Hierarchie:

Form-Objekt

   Controls-Eigenschaft (gibt ein Control.ControlCollection-Objekt für dieses Formular zurück)

      Control.ControlCollection-Objekt (die Standardeigenschaft ist Item)

         Item-Eigenschaft (gibt ein Control-Objekt für ein Element in der Auflistung zurück)

            Control-Objekt

Die Controls-Eigenschaft gibt ein Control.ControlCollection-Objekt zurück, und die Item-Eigenschaft gibt ein Control-Objekt zurück. Das folgende Beispiel verdeutlicht sowohl die zulässige als auch die unzulässige Verwendung von Standardeigenschaften in Visual Basic 2008.

Dim F As New Form   ' Assume F has been created and initialized.
F.Controls.Item(0).Text = "Stop"  ' Valid -- no default properties used. 
F.Controls(0).Text = "Stop"  ' Valid -- Item is parameterized. 
'F(0).Text = "Stop"  ' INVALID -- Form does not have a default property. 
'F.Controls(0) = "Stop"  ' INVALID -- No default property on Control. 

Deklaration von Standardeigenschaften

In Visual Basic 2008 legen Sie eine Eigenschaft als Standardeigenschaft fest, indem Sie an den Anfang ihrer Deklaration das Default-Schlüsselwort setzen. Wenn Sie den Eigenschaftennamen überladen, müssen Sie Default in jeder Überladungsdeklaration festlegen. Sie können eine Standardeigenschaft nicht als Shared oder Private deklarieren.

Siehe auch

Konzepte

Änderungen an Eigenschaftenprozeduren für Visual Basic 6.0-Benutzer

Änderungen an der Unterstützung von Programmierelementen (Zusammenfassung)

Referenz

Text

Label

Set-Anweisung (Visual Basic)

System.Windows.Forms

Form

Control.ControlCollection

Control

Default (Visual Basic)