Klassen und Module

Aktualisiert: November 2007

Sowohl Klassen als auch Module sind Verweistypen, die definierte Elemente kapseln. Sie unterscheiden sich jedoch bezüglich der Art des Zugriffs auf die Elemente von anderen Prozeduren.

Unterschiede zwischen Klassen und Modulen

Der Hauptunterschied zwischen Klassen und Modulen besteht darin, dass Klassen als Objekte instanziiert werden können, während dies für Standardmodule nicht gilt. Da jeweils nur eine Kopie der Daten eines Standardmoduls vorhanden ist, führt die Änderung einer öffentlichen Variablen in einem Standardmodul durch einen Teil des Programms dazu, dass jeder andere Teil des Programms denselben Wert erhält, wenn er diese Variable anschließend liest. Im Gegensatz dazu sind Objektdaten für jedes instanziierte Objekt getrennt vorhanden. Ein weiterer Unterschied zu Standardmodulen besteht darin, dass Klassen Schnittstellen implementieren können.

Hinweis:

Wenn der Modifizierer Shared auf einen Klassenmember angewendet wird, wird er der Klasse selbst zugeordnet und nicht einer bestimmten Instanz der Klasse. In derselben Weise, wie auf Modulmember zugegriffen wird, wird über den Klassennamen direkt auf den Member zugegriffen. Weitere Informationen zu freigegebenen Membern finden Sie unter Freigegebene Member in Visual Basic.

Die Member von Klassen und Modulen besitzen darüber hinaus unterschiedliche Gültigkeitsbereiche. Die in einer Klasse definierten Member sind innerhalb einer bestimmten Instanz der Klasse und nur über die Lebensdauer des Objekts hinweg gültig. Um auf Klassenmember von außerhalb der Klasse zuzugreifen, müssen Sie vollständig qualifizierte Namen im Format Objekt.Member verwenden.

Andererseits sind die in einem Modul deklarierten Member standardmäßig öffentlich verfügbar, und daher kann jeder Code, der Zugriff auf das Modul hat, auf diese Member zugreifen. Dies bedeutet, dass Variablen in einem Standardmodul im Prinzip globale Variablen sind, da sie an jeder Stelle im Projekt sichtbar sind und über die gesamte Lebensdauer des Programms hinweg Bestand haben.

Siehe auch

Konzepte

Strukturen und Klassen

Freigegebene Member in Visual Basic

Referenz

Shared (Visual Basic)

Weitere Ressourcen

Was sind Klassen?