Freigeben über


Klassen für Visual Basic 6.0-Benutzer

Aktualisiert: November 2007

Klassen sind die Bausteine einer objektorientierten Anwendung. Eine Klasse ist ein Programmierkonstrukt, das ein Objekt im System darstellt. Wenn Sie eine Anwendung entwerfen, müssen Sie die beteiligten Objekte, die in den Objekten enthaltenen Informationen und die Aktionen der Objekte entwerfen. Weitere Informationen über Klassen und objektorientierte Programmierung finden Sie unter Objektorientiertes Programmieren in Visual Basic.

Klassenmodule

Visual Basic 6.0

Visual Basic 6.0 unterstützt das Definieren von Klassen durch das Klassenmodul. Die Definition einer Klasse wird in einem besonderen Dateityp, einer CLS-Datei, gespeichert. Eine Klasse wird in jedem Klassenmodul definiert. Ein Teil der Klassendefinition wird in die CLS-Datei eingebettet und kann nur durch das Projektsystem bearbeitet werden.

Visual Basic 2008

In Visual Basic 2008 wird eine Klasse durch die Class-Anweisung (Visual Basic) definiert, nicht durch einen Dateinamen. Klassen in Visual Basic 2008 werden in Quellcodedateien (VB-Dateien) definiert. In einer Datei können mehrere Klassen definiert werden. Der gesamte Klassendefinition ist als einfacher Text im Quellcode sichtbar.

Globale Klassen

Visual Basic 6.0

Wenn Sie in Visual Basic 6.0 eine neue Klasse erstellen, gehören GlobalSingleUse und GlobalMultiUse zu den zulässigen Werten der Instancing-Eigenschaft. Diese Werte geben an, dass die Eigenschaften und Methoden der neuen Klasse von anderen Komponenten aufgerufen werden können, als handelte es sich um freigegebene Member. Beim ersten Aufruf eines ihrer Member wird implizit eine Instanz der Klasse erstellt.

Visual Basic 2008

Visual Basic 2008 unterstützt die Instancing-Eigenschaft nicht. Visual Basic 2008 bietet die gleiche Funktionalität durch die Möglichkeit, Standardmodulmember verfügbar zu machen. Sie können mit der Imports-Anweisung auf freigegebene Eigenschaften und Methoden einer Klasse zugreifen. Den Effekt von GlobalMultiUse erzielen Sie durch eine Klasse mit Public-Zugriff und dem entsprechenden Konstruktorzugriff.

Datenklassen

Visual Basic 6.0

Visual Basic 6.0 unterstützt auch Datenquellen und komplexe Datenconsumerklassen.

Visual Basic 2008

In Visual Basic 2008 gibt es keine direkte Entsprechung. Informationen über Klassen, die Daten bearbeiten, finden Sie unter Gewusst wie: Herstellen einer Verbindung zu Daten in einem Objekt.

Standardmember

Visual Basic 6.0

In Visual Basic 6.0 können Sie eine bestimmte Methode oder einen bestimmten Datenmember als Standardmember einer Klasse angeben.

Visual Basic 2008

In Visual Basic 2008 kann ein Standardmember einer Klasse oder Struktur nur eine Eigenschaft sein, die mindestens ein Argument annimmt. Dies gewährleistet Interoperabilität mit anderen Programmiersprachen. Weitere Informationen finden Sie unter Gewusst wie: Deklarieren und Aufrufen einer Standardeigenschaft in Visual Basic.

Lebensdauer eines Objekts

Visual Basic 6.0

Die Lebensdauer eines Objekts wird durch das Erstellen und Löschen der Objektinstanz bestimmt. Das Programm legt die Erstellzeit von Objekten fest, die von ihm deklariert werden; das Löschen der Objekte hat einen komplexeren Mechanismus zur Folge.

In Visual Basic 6.0 unterhält jede Objektinstanz einen Verweiszähler. Wenn der letzte Verweis auf eine Instanz freigegeben und der Zähler auf Null gesetzt wird, wird das Objekt sofort gelöscht.

Visual Basic 2008

In Visual Basic 2008 wird nach Freigabe des letzten Verweises nicht unbedingt ein Destruktor aufgerufen. Dies liegt daran, dass die Common Language Runtime eine Verweisstruktur anstelle einzelner Verweiszähler enthält. Durch den Garbage Collector wird die Verweisstruktur im Hintergrund überwacht. Er lokalisiert im aktuell ausgeführten Code Objekte oder Objektgruppen, die keinen Verweis haben, und ruft für alle derartigen Objekte Destruktoren auf. Es lassen sich keine Voraussagen bezüglich der Zerstörungsreihenfolge oder der Dauer treffen, die der Garbage Collector benötigt, um die Verweisstruktur zu überwachen. Aus diesem Grund ist die Objektlebensdauer unbestimmt. Weitere Informationen finden Sie unter Objektlebensdauer: Erstellen und Zerstören von Objekten und Garbage Collection.

Aktualisierungsoptionen

Der Aktualisierungs-Assistent erstellt eine einfache Aktualisierung der Klassenmodule mit minimalen Änderungen am Code. Neben den oben aufgeführten Änderungen können Visual Basic-Programmierer unter verschiedenen neuen Konstrukten wählen, die für die objektorientierte Programmierung besonders wichtig sind. Einige dieser Konstrukte werden hier aufgeführt.

  • Konstruktoren   Konstruktoren ersetzen die Verwendung von Class_Initialize von Visual Basic 6.0. Weitere Informationen finden Sie unter Class_Initialize-Änderungen für Visual Basic 6.0-Benutzer.

  • Indizierte Standardeigenschaften   Indizierte Standardeigenschaften werden in .NET Framework häufig für den Zugriff auf Auflistungselemente verwendet. Weitere Informationen finden Sie unter Änderungen von Standardeigenschaften für Visual Basic 6.0-Benutzer.

  • ReadOnly   In Visual Basic 6.0 gilt eine Eigenschaft implizit als schreibgeschützt, wenn keine Get-Prozedur vorhanden ist. In Visual Basic 2008 muss dieses Verhalten mit dem ReadOnly-Schlüsselwort explizit deklariert werden. Weitere Informationen finden Sie unter Property-Anweisung.

  • Späte Bindung   Da in Visual Basic 6.0 standardmäßig die späte Bindung verwendet wird, ist eine fehlerfreie Aktualisierung des Codes am wahrscheinlichsten, wenn Option Strict auf Off festgelegt wird. Wenn Option Strict in On geändert wird, wird zur Kompilierungszeit Typsicherheit erzwungen. Dies kann vor allem während des Kompilierens, nicht unbedingt zur Laufzeit, zu schwierig zu entdeckenden Fehlern führen. Weitere Informationen finden Sie unter Option Strict-Anweisung.

  • Überladen von Methoden   Durch das Überladen von Methoden wird die Anzahl benannter Member einer Klasse reduziert. Dadurch wird der Code der Klasse besser lesbar, und die Klasse kann einfacher in Programmen verwendet werden. Weitere Informationen finden Sie unter Prozeduränderungen für Visual Basic 6.0-Benutzer.

  • Dateiname   In Visual Basic 6.0 müssen der Klassenname und der Dateiname übereinstimmen. In Visual Basic 2008 werden diese durch den Programmierer festgelegt. Außerdem können in einer Quelldatei mehrere Klassen definiert werden. Die Anzahl der Klassen in einer Datei wird i. d. R. durch einen Codierungsstandard festgelegt.

  • ByRef   Die Standardeinstellung für Parameter in Visual Basic 6.0 lautet ByRef. Daher erfolgt die sicherste Aktualisierung mit ByRef. Weitere Informationen finden Sie unter ByVal.

  • Rückgabeschlüsselwort   In Visual Basic 6.0 wird der Funktionsname als Variable verwendet, die den Wert der Funktion zurückgibt. Visual Basic 2008 enthält das explizite Return-Schlüsselwort zur Rückgabe von Funktionswerten. Weitere Informationen finden Sie unter Return-Anweisung (Visual Basic).

  • Überladen von Operatoren   Jetzt ist es möglich, für die von Ihnen definierten Klassen die Bedeutung von Addition (+), Subtraktion (-) und anderen Operatoren festzulegen. Weitere Informationen finden Sie unter Operator-Anweisung.

  • Neue Operatoren   Durch den +=-Operator können Codezeilen kürzer und einfacher werden. Weitere Informationen finden Sie unter Arithmetische Operatoren (Visual Basic).

  • Inlinedefinition neuer Werte   Die Syntax in Visual Basic 2008 ermöglicht das Deklarieren und Festlegen des Werts einer neuen Variablen in einer einzigen Codezeile. Das heißt, dass Sie Dateneinschränkungen ab der Instanziierung des Objekts erzwingen können. Weitere Informationen finden Sie unter Dim-Anweisung (Visual Basic).

Das Umschreiben des Codes birgt stets gewisse Risiken. Bei jeder Änderung muss der Code erneut getestet werden. Zudem haben manche Schlüsselwörter in Visual Basic 2008 nicht die gleiche Funktion wie in Visual Basic 6.0. Weitere Informationen finden Sie unter Aktualisieren von Anwendungen, die in früheren Versionen von Visual Basic erstellt wurden.

Siehe auch

Konzepte

Frühes und spätes Binden

Class_Initialize-Änderungen für Visual Basic 6.0-Benutzer

Referenz

Structure-Anweisung

Property-Anweisung

Option Strict-Anweisung

Return-Anweisung (Visual Basic)

"ByVal" und "ByRef" können nicht kombiniert werden

ByRef

Weitere Ressourcen

Erstellen und Verwenden von Objekten

Was sind Klassen?