Objektorientiertes Programmieren für Visual Basic 6.0-Benutzer
Aktualisiert: November 2007
Visual Basic 6.0 unterstützt objektorientierte Sprachelemente und in Bibliotheken verteilte Objekte. In Visual Basic 2008 wurde die Unterstützung für die objektorientierte Programmierung erweitert, da hier sämtliche Spracheigenschaften unterstützt werden.
Konzeptionelle Unterschiede
Im folgenden Abschnitt werden objektorientierte Features in Visual Basic 2008 aufgelistet und, sofern vorhanden, mit der Implementierung von Visual Basic 6.0 verglichen. Für jedes Feature werden Verknüpfungen zu ausführlichen Hilfeseiten angegeben, auf denen Sie weiterführende Informationen finden.
Zugriffsebenen
In Visual Basic 6.0 werden mit den Schlüsselwörtern Private, Friend, Public und Static Zugriffsebenen für deklarierte Elemente festgelegt.
In Visual Basic 2008 werden die Zugriffsebenen für deklarierte Elemente mit den Schlüsselwörtern Private, Friend, Public und Static sowie den neuen Schlüsselwörtern Protected und Protected Friend festgelegt. Die Zugriffsebene eines deklarierten Elements gibt an, welche Zugriffsmöglichkeiten für das Element gelten, d. h. welchem Code der Schreib- oder Lesezugriff gestattet ist.
Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic und Gültigkeitsbereich in Visual Basic.
Attribute
Für eingebettete Attribute wird in Visual Basic 6.0 mithilfe von Tools wie den Prozedurattributen in der Visual Basic IDE eine begrenzte Unterstützung bereitgestellt.
In Visual Basic 2008 ist ein Attribute ein beschreibendes Tag, mit dem Typ- und Typmemberanweisungen kommentiert werden können. So kann die jeweilige Bedeutung geändert und das Verhalten angepasst werden. Beispielsweise können Klassenanweisungen und Klassenmethodenanweisungen mit Attributen kommentiert werden.
Ihre und andere Anwendungen (z. B. der Visual Basic-Compiler) können mithilfe von Reflektion auf Attribute zugreifen, um die Verwendung von Typen und Typmembern zu bestimmen.
Mit Attributen kann die aspektorientierte Programmierung (Aspect Oriented Programming, AOP) in Visual Basic ausgeführt werden. Ein Aspekt ist Teil eines Programms und gilt querschnittsübergreifend für dessen Geschäftslogik. Mit anderen Worten: Er ist für die abschließende Ausführung des Programms erforderlich, muss jedoch nicht unbedingt spezifisch für die Domäne sein, für die das Programm geschrieben wurde. Das Ziel des aspektorientierten Programmierungsparadigmas besteht darin, Aspekte wie Protokollierung und Beibehaltung von der Geschäftslogik zu isolieren.
Weitere Informationen finden Sie unter Übersicht über Attribute in Visual Basic, In Visual Basic verwendete Attribute und Allgemeine Verwendungszwecke für Attribute.
Binärkompatibilität
In Visual Basic 6.0 können Sie mit der Binary Compatibility-Option beim Kompilieren einer neuen Version automatisch Klassen- und Schnittstellenbezeichner aus einer älteren Version einer Komponente beibehalten.
In Visual Basic 2008 wird die Binary Compatibility-Option nicht unterstützt. Stattdessen wird binäre Kompatibilität über Attribute erreicht. Dadurch haben Sie eine direkte Kontrolle über die Informationen, die in Ihre kompilierte Komponente gestellt werden, z. B. Klassen- und Schnittstellenbezeichner, virtuelle Tabellenoffsets und entsprechende COM-Attribute.
Weitere Informationen finden Sie unter Änderungen an der Binärkompatibilität für Visual Basic 6.0-Benutzer.
Klassenmodule
In Visual Basic 6.0 wird eine Klasse in einem Klassenmodul definiert. Ein einzelnes Klassenmodul wird in einem bestimmten Dateityp mit einer CLS-Dateierweiterung gespeichert.
In Visual Basic 2008 wird eine Klasse in einer Class-Anweisung definiert, die den Namen und die Member einer Klasse angibt. Class-Anweisungen werden in Quelldateien gespeichert. Die gesamte Quelldatei kann als Nur-Text angezeigt werden.
Mehrere Class-Anweisungen sowie andere Typanweisungen können in einer einzigen Quelldatei gespeichert werden. In Visual Basic muss der Name der Quelldatei nicht einer in der Quelldatei definierten Class oder einem dort definierten Typ entsprechen.
Weitere Informationen finden Sie unter Class-Anweisung (Visual Basic).
Klassenkonstruktormethoden
In Visual Basic 6.0 wird der Initialize-Klassenereignishandler mit dem Namen Class_Initialize zum Ausführen von Code verwendet, der zu dem Zeitpunkt ausgeführt werden muss, an dem ein Objekt erstellt wird.
In Visual Basic 2008 werden einer Klasse ein oder mehrere Konstruktoren hinzugefügt, um Code auszuführen und Variablen zu initialisieren. Konstruktoren sind die Methoden einer Klasse, die als New bezeichnet werden. Die New-Methode kann überladen werden, um mehrere Konstruktoren mit dem Namen New innerhalb der gleichen Klassenanweisung bereitzustellen.
Weitere Informationen finden Sie unter New (Visual Basic) oder Verwenden von Konstruktoren und Destruktoren.
Klassendestruktormethoden
In Visual Basic 6.0 wird das Nothing-Schlüsselwort verwendet, um die Zuordnung einer Objektvariablen zu einem tatsächlichen Objekt aufzuheben. Mit der Set-Anweisung kann einer Objektvariablen Nothing zugeordnet werden.
In Visual Basic 2008 führt der Garbage Collector für die meisten von einer Anwendung erzeugten Objekte alle Aufgaben der Speicherverwaltung automatisch aus. Allerdings ist bei nicht verwalteten Ressourcen explizites Bereinigen erforderlich. Die häufigsten nicht verwalteten Ressourcen sind Objekte, die als Wrapper einer Betriebssystemressource dienen, z. B. ein Dateihandle, ein Fensterhandle oder eine Netzwerkverbindung.
Wenn Sie ein Objekt erstellen möchten, das eine nicht verwaltete Ressource kapselt, ist es ratsam, Code zum Bereinigen der nicht verwalteten Ressource in einer öffentlichen Dispose-Methode bereitzustellen. Durch Bereitstellen der Dispose-Methode wird Benutzern des Objekts die Möglichkeit gegeben, nicht mehr benötigten Speicherplatz explizit freizugeben, sobald das Objekt nicht mehr verwendet wird.
Wenn Sie ein Objekt verwenden, das eine nicht verwaltete Ressource kapselt, sollten Sie die Dispose-Methode beachten und bei Bedarf aufrufen.
Weitere Informationen finden Sie unter Bereinigen von nicht verwalteten Ressourcen oder Automatische Speicherverwaltung.
Class_Initialize
In Visual Basic 6.0 kann ein Initialize-Klassenereignis mit einer Class_Initialize-Methode zum Ausführen von Code verwendet werden, der zu dem Zeitpunkt ausgeführt werden muss, zu dem ein Objekt erstellt wird. Die Werte der Klassendatenvariablen können beispielsweise initialisiert werden.
In Visual Basic 2008 werden das Initialize-Ereignis und der Class_Initialize-Handler nicht unterstützt. Um die Klasseninitialisierung bereitzustellen, muss den definierten Klassen und Strukturen mindestens eine Konstruktormethode hinzugefügt werden.
Weitere Informationen finden Sie unter Class_Initialize-Änderungen für Visual Basic 6.0-Benutzer.
Datenklassen
In Visual Basic 6.0 werden Datenquellen- und komplexe Datenconsumerklassen verwendet, um mit externen Daten wie beispielsweise Microsoft SQL Server-Datenbanken zu arbeiten. Eine Datenquellenklasse stellt Daten aus einer externen Quelle bereit. Eine Datenconsumerklasse kann an eine externe Datenquelle gebunden werden, so z. B. an eine Data Source-Klasse.
In Visual Basic 2008 werden Datenquellen, einfache und komplexe Datenconsumer sowie Klassen für Bindungen zum Verarbeiten von externen und internen Daten verwendet.
Weitere Informationen finden Sie unter Datenbindung und Windows Forms.
Default-Eigenschaft
In Visual Basic 6.0 kann jede Klasseneigenschaft als Standardeigenschaft der Klasse definiert werden.
In Visual Basic 2008 kann der Standardmember einer Klasse oder Struktur nur eine Eigenschaft sein, die mindestens ein Argument akzeptiert. Standeigenschaftenmember werden definiert, indem das Default-Schlüsselwort in eine Deklarationsanweisung der Eigenschaft in einer Klasse oder Struktur eingebunden wird.
Weitere Informationen finden Sie unter Änderungen von Standardeigenschaften für Visual Basic 6.0-Benutzer.
Delegaten
Delegattypen werden in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 ist ein Delegattyp eine Art objektorientierter Methodenzeiger, der das indirekte Aufrufen einer Methode durch einen Verweis auf die Methode ermöglicht. Delegaten können dazu verwendet werden, Ereignishandler zu verknüpfen und eine Methode von einer Methode an eine andere zu übergeben.
Mit Delegaten kann das asynchrone Entwurfsmuster implementiert werden. Beispielsweise kann ein Programm unter Verwendung eines asynchronen Delegaten eine Methode aufrufen, die eine lange Liste abruft, während das Hauptprogramm weiterhin ausgeführt wird. Nach Abschluss der Enumeration wird ein Rückruf gestartet, den das Programm dann verarbeitet.
Weitere Informationen finden Sie unter Delegaten in Visual Basic oder Gewusst wie: Übergeben von Prozeduren an eine andere Prozedur in Visual Basic.
Fehlerbehandlung
In Visual Basic 6.0 wird die On Error-Anweisung für eine unstrukturierte Ausnahmebehandlung verwendet.
In Visual Basic 2008 wird sowohl die unstrukturierte als auch die strukturierte Ausnahmebehandlung unterstützt. Die strukturierte Ausnahmebehandlung ist eine Steuerungsstruktur, die Ausnahmen, isolierte Codeblöcke und Filter enthält, mit denen ein Mechanismus für die Ausnahmebehandlung erstellt wird.
Weitere Informationen finden Sie unter Strukturierte Ausnahmebehandlung in Visual Basic oder Verwenden der strukturierten und der unstrukturierten Ausnahmebehandlung.
Ereignisse
In Visual Basic 6.0 werden die Schlüsselwörter Event, RaiseEvent und WithEvents zum Deklarieren, Auslösen und Behandeln von Ereignissen verwendet.
In Visual Basic 2008 werden Ereignisse mit den Schlüsselwörtern Event, RaiseEvent und WithEvents sowie den neuen Schlüsselwörtern AddHandler, RemoveHandler und Handles deklariert, ausgelöst und behandelt.
Mit dem AddHandler-Schlüsselwort und dem RemoveHandler-Schlüsselwort kann der einem Ereignis zugeordnete Ereignishandler dynamisch hinzugefügt, entfernt und geändert werden.
Das Handles-Schlüsselwort ermöglicht das Definieren einer Handles-Klausel für eine Methode. Handles deklariert, dass ein bestimmtes Ereignis von einer Prozedur behandelt wird.
Ereignisse in .NET Framework basieren auf dem Delegatmodell. Das Delegatmodell basiert auf dem objektorientierten Beobachterentwurfsmuster.
Weitere Informationen finden Sie unter Gewusst wie: Schreiben von Ereignishandlern.
Generika
Generische Typen werden in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 werden Generika verwendet, um parametrische Polymorphie in einem Visual Basic-Programm zu implementieren. Generischer Code wird ohne Angabe eines spezifischen Typs geschrieben und kann daher transparent mit einer beliebigen Anzahl neuer Typen verwendet werden.
Visual Basic 2008 unterstützt Typparameter für generische Klassen, Strukturen, Schnittstellen, Prozeduren und Delegaten. Zur Kompilierzeit gibt ein entsprechendes Typargument den Datentyp eines der Elemente im generischen Typ an.
Weitere Informationen finden Sie unter Generische Typen in Visual Basic.
Globale Klassen
In Visual Basic 6.0 wird über den Wert der Instancing-Eigenschaft einer Klasse bestimmt, ob eine Klasse privat ist und nur innerhalb einer Komponente oder auch von anderen Anwendungen verwendet werden kann. Dieser Wert legt außerdem fest, wie andere Anwendungen Instanzen der Klasse erstellen und die Klassenmember aufrufen können.
In Visual Basic 2008 wird die Instancing-Eigenschaft nicht mehr unterstützt.
Sie können das Public-Schlüsselwort auf Klassenanweisungen in einer Assembly anwenden, um Klassen in dieser Assembly auch für andere Assemblys verfügbar zu machen.
Sie können auf eine externe Assembly wie beispielsweise eine Klassenbibliothek verweisen, um Code in Ihrer Anwendung das Verwenden der Public-Klassen aus dieser Klassenbibliothek zu ermöglichen.
Mithilfe des Imports-Schlüsselworts können Sie Namespacenamen aus Projekten und Assemblys importieren, auf die verwiesen wird. Darüber hinaus kann das Imports-Schlüsselwort auch Namespacenamen importieren, die im selben Projekt definiert sind wie die Datei, in der die Anweisung vorkommt.
Sie können das Shared-Schlüsselwort auf Feld-, Eigenschaften- und Methodenmember von Klassen und Strukturen anwenden, um freigegebene Member zu implementieren. Freigegebene Member sind Eigenschaften, Prozeduren und Felder, die von allen Instanzen einer Klasse oder Struktur gemeinsam verwendet werden. Auf die freigegebenen Member einer Klasse kann ohne Instanziierung der Klasse zugegriffen werden.
Weitere Informationen finden Sie unter Zugriffsebenen in Visual Basic, Verweise und die Imports-Anweisung oder Freigegebene Member in Visual Basic.
Implementierungsvererbung
Die Implementierungsvererbung wird in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 kann Ad-Hoc-Polymorphie durch Implementierungsvererbung implementiert werden. Somit können Sie Klassen mit funktionell unterschiedlichen, aber gleichnamigen Methoden oder Eigenschaften definieren, die vom Clientcode zur Laufzeit austauschbar verwendet werden können.
Sie können Basisklassen definieren, die als Grundlage für abgeleitete Klassen dienen. Abgeleitete Klassen erben die Eigenschaften, Methoden und Ereignisse der Basisklasse und können diese erweitern. Abgeleitete Klassen können auch geerbte Methoden mit neuen Implementierungen überschreiben.
Weitere Informationen finden Sie unter Grundlagen der Vererbung oder Wann wird Vererbung verwendet?.
Schnittstellenvererbung
Visual Basic 6.0 stellt Polymorphie durch mehrere ActiveX-Schnittstellen bereit. In Component Object Model (COM), das die Infrastruktur für die ActiveX-Spezifikation bildet, ist es durch mehrere Schnittstellen möglich, dass Systeme von Softwarekomponenten entwickelt werden können, ohne vorhandenen Code zu unterbrechen.
In Visual Basic 2008 kann Ad-Hoc-Polymorphie mit dem Interface-Schlüsselwort aus .NET Framework implementiert werden.
Mehrere Klassen können die gleiche Interface implementieren, und eine einzelne Klasse kann eine oder mehrere Schnittstellen implementieren. Bei Schnittstellen handelt es sich im Wesentlichen um Definitionen dazu, wie von einer Klasse reagiert werden muss. Mit einer Schnittstelle werden sowohl die Methoden, Eigenschaften und Ereignisse, die von einer Klasse implementiert werden müssen, als auch die Typen der Parameter definiert, die von jedem Member empfangen bzw. zurückgegeben werden. Besondere Implementierungen dieser Member bleiben jedoch der implementierenden Klasse vorbehalten.
Mehrfache Schnittstellen haben den Vorteil, dass Systeme von Softwarekomponenten sich entwickeln können, ohne den vorhandenen Code zu unterbrechen.
Weitere Informationen finden Sie unter Auf Schnittstellen basierender Polymorphismus oder Gewusst wie: Erstellen und Implementieren von Schnittstellen.
Methoden: ByVal-Parameter und ByRef-Parameter
In Visual Basic 6.0 werden Argumente als Wert oder als Verweis an eine Methode übergeben. Sofern die Methodenparameter nicht explizit vom ByVal-Schlüsselwort oder vom ByRef-Schlüsselwort angegeben wurden, werden Argumente implizit als Verweis übergeben (ByRef).
In Visual Basic 2008 werden Argumente als Wert oder Verweis an eine Methode übergeben. Sofern die Methodenparameter nicht explizit vom ByVal-Schlüsselwort oder vom ByRef-Schlüsselwort angegeben wurden, werden Argumente implizit als Wert übergeben (ByVal).
Weitere Informationen finden Sie unter Übergeben von Argumenten als Wert und als Verweis.
Methoden: Überladen
Das Überladen von Methoden wird in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 wird Method-Überladung verwendet, um Ad-Hoc-Polymorphie in einem Visual Basic-Programm zu implementieren. Eine Methode wird überladen, wenn mehr als eine Version der Methode in einer Klasse definiert wird. Die überladenen Versionen unterscheiden sich in ihren Parametern und Rückgabetypen.
Weitere Informationen finden Sie unter Überladene Eigenschaften und Methoden und Visual Basic und Polymorphismus.
Methoden: Überschreiben
Methoden können in Visual Basic 6.0 nicht überschrieben werden.
In Visual Basic 2008 kann mithilfe des Overrides-Schlüsselworts eine Methode in einer abgeleiteten Klasse überschrieben werden, um eine andere Methodenimplementierung aus der Basisklasse der abgeleiteten Klasse bereitzustellen.
Weitere Informationen finden Sie unter Überschreiben von Eigenschaften und Methoden.
Methoden: Zurückgeben von Ergebnissen
In Visual Basic 6.0 wird der Name einer Function-Methode als Name einer Variablen verwendet, mit der das Ergebnis der Function-Methode zurückgegeben wird.
In Visual Basic 2008 wird mit dem Return-Schlüsselwort das Ergebnis einer Function-Methode zurückgegeben.
Verwenden Sie Return, um die Steuerung an den Codeabschnitt zurückzugeben, über den eine Methode Sub, Function oder Property aufgerufen wurde.
Weitere Informationen finden Sie unter Return-Anweisung (Visual Basic).
My
In Visual Basic 2008 ermöglicht das neue My-Feature die schnelle objektorientierte Programmierung mit Visual Basic, da Einstiegspunkte zu häufig verwendeten Klassen und Funktionen von .NET Framework bereitgestellt werden. My stellt neue leistungsfähige .NET Framework-Klassen bereit, in denen verwandte Funktionen in aufgabenbasierten APIs zusammengefasst werden.
Weitere Informationen finden Sie unter Entwicklung mit "My".
Schlüsselwörter MyBase, MyClass und Me
In Visual Basic 6.0 verhält sich das Me-Schlüsselwort wie eine implizit deklarierte Variable. Wenn eine Klasse über mehrere Instanzen verfügt, bietet Me die Option, auf eine bestimmte Instanz der Klasse zu verweisen, während Code ausgeführt wird.
In Visual Basic 2008 stellt das MyBase-Schlüsselwort eine Möglichkeit zum Verweisen auf die Basisklasse der aktuellen Klasseninstanz dar.
Das MyClass-Schlüsselwort bietet die Möglichkeit, ohne Überschreibungen auf die aktuelle Klasseninstanz zu verweisen.
Das Me-Schlüsselwort ermöglicht einen Verweis auf die bestimmte Instanz einer Klasse oder Struktur, in der der Code momentan ausgeführt wird.
Weitere Informationen finden Sie unter Me, "My", "MyBase" und "MyClass" in Visual Basic.
New-Schlüsselwort
In Visual Basic 6.0 kann die unsachgemäße Verwendung des New-Schlüsselworts zu einem ungewöhnlichen Verhalten bei der erneuten Initialisierung führen, das wiederum Fehler und eine hohe Speicherauslastung bewirken kann.
In Visual Basic 2008 wird vom New-Schlüsselwort nur Speicherplatz für das Objekt reserviert. Es wird kein ungewöhnliches Verhalten bei erneuten Initialisierungen verursacht.
Sie können eine New-Klausel in Deklarationsanweisungen oder Zuweisungsanweisungen verwenden. Bei der Ausführung der Anweisung wird die Konstruktormethode der angegebenen Klasse aufgerufen, außerdem werden alle in der New-Klausel festgelegten Argumente übergeben. Das heißt, dass Sie Dateneinschränkungen ab der Instanziierung des Objekts erzwingen können.
Eine Klasse verfügt über einen oder mehrere Konstruktoren. Konstruktoren sind die Methoden, die in einer Methode mit dem Namen New bezeichnet werden. Mehrere Konstruktoren werden durch Überladung der New-Methode in der Klasse definiert. Überladene Konstruktormethoden werden als parametrisierte Konstruktoren bezeichnet.
Weitere Informationen finden Sie unter New (Visual Basic).
Lebensdauer eines Objekts
In Visual Basic 6.0 ist die Lebensdauer eines Objekts deterministisch. Jede Objektinstanz verfügt über einen Verweiszähler. Wenn der letzte Verweis auf eine Instanz freigegeben und der Zähler auf 0 (null) gesetzt ist, wird das Objekt sofort gelöscht.
In Visual Basic 2008 ist die Lebensdauer eines Objekts nicht deterministisch. Nach der Freigabe des letzten Verweises wird 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 bestimmt im aktuell ausgeführten Code Objekte oder Objektgruppen, die über keine Verweise verfügen, 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.
Weitere Informationen finden Sie unter Lebensdauer in Visual Basic oder Objektlebensdauer: Erstellen und Zerstören von Objekten.
Überladen von Operatoren
Das Überladen von Operatoren wird in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 ermöglicht das Überladen von Operatoren, das Verhalten eines Standardoperators (z. B. *, <> oder And) für eine benutzerdefinierte Klasse oder Struktur zu definieren.
Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Konvertierungsoperators.
Option Strict
In Visual Basic 6.0 wird eine freie Typüberprüfung zur Laufzeit durchgeführt.
Anstelle einer freien Typüberprüfung zur Laufzeit können Sie in Visual Basic 2008 mit der OPTION STRICT ON-Anweisung eine strikte Typüberprüfung zur Entwurfszeit ausführen. Standardmäßig wird OPTION STRICT OFF verwendet.
Bei der Konvertierung von Datentypen wendet der Visual Basic-Compiler entweder strikte oder freie Typsemantik an. Wenn die strikte Typsemantik aktiviert ist (OPTION STRICT ON), sind erweiternde Konvertierungen implizit gestattet, und einschränkende Konvertierungen müssen explizit sein. Bei der freien Typsemantik (OPTION STRICT OFF) können alle erweiternden und einschränkenden Konvertierungen implizit durchgeführt werden. Die Typsemantik gilt für Konvertierungen zwischen allen Datentypen, einschließlich Objekttypen.
Weitere Informationen finden Sie unter Typüberprüfung in Visual Basic.
Eigenschaftensyntax
In Visual Basic 6.0 werden Eigenschaftenwerte mit den Anweisungen Property Get, Property Let und Property Set abgerufen bzw. festgelegt.
In Visual Basic 2008 wird eine vereinheitlichte Deklarationssyntax für Eigenschaften verwendet, die Prozeduren zum Abrufen und Festlegen der Eigenschaftenwerte umfasst. Dies gewährleistet die Konsistenz von Eigenschaftenattributen, wie Zugriffsebene und Überladung.
Weitere Informationen finden Sie unter Eigenschaftenänderungen für Visual Basic 6.0-Benutzer.
Öffentliche Schnittstellen
In Visual Basic 6.0 umfasst die öffentliche Schnittstelle einer Klasse die Gesamtheit ihrer öffentlichen Member.
In Visual Basic 2008 ist die öffentliche Schnittstelle einer Klasse der Satz ihrer öffentlichen Member, jedoch kann mit einer abstrakten Klasse Polymorphie für untergeordnete Typen in einem Visual Basic-Programm implementiert werden.
Eine abstrakte Klasse vergleichbar mit der Interface von .NET Framework. Eine abstrakte Klasse ist eine Klasse, die ausschließlich als Basisklasse für abgeleitete Klassen konzipiert wurde. Mithilfe von abstrakten Klassen werden häufig abstrakte Konzepte oder Entitäten dargestellt.
Eine abstrakte Klasse kann nicht instanziiert werden, dieser Prozess muss über Vererbung erfolgen. Für einige oder alle Member der Klasse ist keine Implementierung notwendig, sie muss von der erbenden Klasse bereitgestellt werden. Member, die implementiert wurden, können trotzdem überschrieben werden. Zusätzliche Schnittstellen oder andere Funktionalitäten können von der erbenden Klasse weiterhin implementiert werden.
Weitere Informationen finden Sie unter MustInherit.
Schreibgeschützte Eigenschaften
In Visual Basic 6.0 bewirkt das Ausschließen der Set-Methode in einer Property-Prozedur, dass eine schreibgeschützte Eigenschaft erstellt wird.
Damit eine Eigenschaft schreibgeschützt wird, muss in Visual Basic 2008 sowohl das ReadOnly-Schlüsselwort auf die Eigenschaft angewendet als auch die Set-Klausel der Eigenschaft ausgeschlossen werden.
Sie können auch das ReadOnly-Schlüsselwort für ein Feld übernehmen, um dessen Schreibschutz zu aktivieren.
Weitere Informationen finden Sie unter ReadOnly (Visual Basic).
Reflektion
Reflektion wird in Visual Basic 6.0 nicht unterstützt.
In Visual Basic 2008 können die Klassen in der .NET Framework-Klassenbibliothek im System.Reflection-Namespace verwendet werden, um Informationen zu Typen wie Klassen, Schnittstellen und Werttypen zur Laufzeit abzurufen. Außerdem können Typinstanzen zum Aufrufen von und Zugreifen auf die Klassen erstellt werden.
Weitere Informationen finden Sie unter Reflektionsnamespaces in Visual Studio.
Freigegebene Klassen- und Strukturmember
In Visual Basic 2008 kann das neue Shared-Schlüsselwort auf die Anweisungen Property, Sub, Dim, Function, Operator und Event angewendet werden, um diese für alle Instanzen einer Klasse oder Struktur freizugeben. Auf die freigegebenen Member einer Klasse kann ohne Instanziierung der Klasse zugegriffen werden.
Auf freigegebene Member können Sie über den Namen einer Klasse zugreifen (anstatt über eine Instanz der Klasse).
Weitere Informationen finden Sie unter Freigegebene Member in Visual Basic.
Quelldateien
In Visual Basic 2008 bestehen Programme aus mindestens einer Quelldatei. Quelldateien werden in einem besonderen Dateityp mit einer VB-Dateierweiterung gespeichert. Typanweisungen für Typen wie Klassen, Strukturen, Schnittstellen, Enumerationen und Delegaten sowie Anweisungen für Standardmodule werden in programmeigenen Quellcodedateien gespeichert. In Visual Basic ist eine Quelldatei nicht auf die Definition eines einzelnen Typs beschränkt. Außerdem muss der Name der Quelldatei nicht mit einem in der Quelldatei definierten Typ übereinstimmen.
Partielle Typanweisungen ermöglichen es einer Klasse oder einer Struktur, in mehreren Quelldateien definiert zu werden. Wenn ein Programm mit mehreren Quelldateien kompiliert wird, werden alle Quelldateien so verarbeitet, als ob sie vor Beginn der Verarbeitung in einer Datei zusammengefasst worden wären.
Weitere Informationen finden Sie unter Struktur von Visual Basic-Programmen oder Partial (Visual Basic).
Benutzerdefinierte Typen
In Visual Basic 6.0 werden mithilfe der Type-Anweisung Variablen mit unterschiedlichen Typen zu einem benutzerdefinierten Typ zusammengefasst.
In Visual Basic 2008 werden benutzerdefinierte Werttypen mithilfe der Structure-Anweisung und der Enum-Anweisung definiert.
Um benutzerdefinierte Referenztypen zu definieren, verwenden Sie die Anweisungen Class, Interface und Delegate.
Weitere Informationen finden Sie unter Strukturen: Benutzerdefinierte Datentypen.
Variablendeklaration
In Visual Basic 6.0 können Sie Variablen mit unterschiedlichen Typen in der gleichen Anweisung deklarieren. Wenn Sie für die Variable keinen Datentyp in der Anweisung angeben, wird der Standardwert Variant verwendet.
In Visual Basic 2008 können Sie mehrere Variablen desselben Datentyps deklarieren, ohne dass der Datentyp der einzelnen Variablen in der Anweisung angegeben werden muss.
Weitere Informationen finden Sie unter Variablendeklaration in Visual Basic.
Hinweise zum Durchführen eines Updates
Wenn für eine Visual Basic 6.0-Anwendung ein Update auf Visual Basic 2008 ausgeführt wird, werden objektorientierte Codekonstrukte in die Visual Basic 2008-Entsprechung konvertiert, die ihnen am nächsten kommt. Der resultierende Code sollte nicht als Beispiel für die objektorientierte Programmierung in Visual Basic 2008 verwendet werden.
Wenn Sie eine bereits aktualisierte Anwendung für die Verwendung objektorientierter Visual Basic 2008-Konstrukte erweitern möchten, sollten Sie zuerst den aktualisierten Code ändern. Anleitungen zum Einstieg erhalten Sie auf den folgenden Seiten.
Klassen für Visual Basic 6.0-Benutzer
Klassen sind die Bausteine einer objektorientierten Anwendung.Gewusst wie: Konvertieren einer benutzerdefinierten Auflistung in eine typisierte Visual Basic-Auflistung
Visual Basic 2008 bietet mehrere Optionen für das Erstellen typisierter Klassen aus benutzerdefinierten Visual Basic 6.0-Auflistungen.Gewusst wie: Konvertieren eines benutzerdefinierten Typs in eine Visual Basic-Struktur
Die Type-Anweisung von Visual Basic 6.0 wird auf die Structure-Anweisung von Visual Basic 2008 aktualisiert.Gewusst wie: Konvertieren von Implements-Code in eine neue Art der Vererbung
Neuere Versionen von Visual Basic bieten mit der Implements-Anweisung und der Inherits-Anweisung zwei Vererbungstypen.
Siehe auch
Aufgaben
Beispiel für die objektorientierte Programmierung
Konzepte
Klassen für Visual Basic 6.0-Benutzer
Objektorientierte Änderungen für Module in Visual Basic
Schnittstellenänderungen für Visual Basic 6.0-Benutzer
Vererbung für Visual Basic 6.0-Benutzer
Weitere Ressourcen
Änderungen in der Programmiersprache für Visual Basic 6.0-Benutzer