ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 18.02.2000

Diese Seite wurde zuletzt aktualisiert am 18.02.2000
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für IE, Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Konstrukt(or)ivismus

Zurück...


Anzeige

(-hg) mailto:hg_constructors@aboutvb.de

Nachdem gerade frisch angekündigt worden ist, dass die nächste Visual Basic-Version 7 die Verwendung von Konstruktoren für Klassenobjekte ermöglichen soll, erübrigt sich dieser Tipp ja schon fast. Aber da Sie als objektorientiert programmierender Profi bestimmt nicht noch so lange warten wollen, zeige ich Ihnen, wie Sie Konstruktoren bereits jetzt verwenden können. Die Migration nach Visual Basic 7 dürfte sich dann auf reine Syntax-Nachbearbeitung beschränken.

Ganz gemäß den Konventionen anderer Programmiersprachen legen Sie dazu einfach eine öffentliche Methode mit dem Namen der Klasse und mit den gewünschten Parametern an. Angenommen, Sie haben Ihre Klasse "MeineKlasse" genannt, sähe dies etwa so aus:

Public Sub MeineKlasse(Param1 As ..., Param2 As ..., ...)
'...
End Sub

In dieser Methode können Sie nun den zu initialisierenden privaten oder Eigenschaften-Variablen die übergebenen Parameter-Werte zuweisen. Der einzige kleine Nachteil ist nur, dass der Aufruf dieses Konstruktors nicht in der gleichen Zeile wie die Instanzierung erfolgen kann, aber ansonsten sähe er folgendermaßen aus:

Dim Klasse As MeineKlasse

Set Klasse = New MeineKlasse
Klasse.MeineKlasse a, b

Etwas eleganter wird das natürlich, wenn Sie in ihrer Klasse keine Standard-Eigenschaft benötigen. Dann können Sie nämlich diese Kontruktor-Methode als Standard festlegen (ja doch, auch Methoden können als "Voreinstellung" gewählt werden!) und so aufrufen:

Dim Klasse As MeineKlasse

Set Klasse = New MeineKlasse
Klasse a, b

Deklarieren Sie die Parameter der Konstruktor-Methode optional, kann der Anwender Ihrer Klasse wählen, welche Werte er initialisieren möchte:

Public Sub MeineKlasse(Optional Param1 As ..., Optional ...)
'...
End Sub

Und ein Beispiel-Aufruf:

Dim Klasse As MeineKlasse

Set Klasse = New MeineKlasse
Klasse Param2:=b

Destruktoren können Sie natürlich ebenfalls anlegen. Wenn Sie einer Destruktor-Methode obendrein noch die Objekt-Variable selbst als Parameter übergeben, kann die Klasse sogar selbst dafür sorgen, dass die Objekt-Variable freigegeben wird (Set ... = Nothing):

Public Sub Destructor(ObjVar As MeineKlasse)
  ' Code zum Aufräumen...

  Set ObjVar = Nothing
End Sub

Überzeugen Sie sich selbst, dass dies funktioniert:

Dim Klasse As MeineKlasse

Set Klasse = New MeineKlasse
'...
Debug.Print (Klasse Is Nothing)

Klasse.Destructor Klasse

Debug.Print (Klasse Is Nothing)

Da sage doch noch einer, mit Visual Basic könne man (noch) nicht richtig objektorientiert programmieren...


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikel

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche



Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer