Konstante
Es ist üblich, Code zu finden, der konstante Werte enthält, die immer wieder auftreten. Möglicherweise stellen Sie auch fest, dass der Code schwer zu merkende Zahlen verwendet, die keine klare Bedeutung haben.
In diesen Fällen können Konstanten verwendet werden, um die Lesbarkeit und Wartbarkeit des Codes erheblich zu verbessern. Konstanten sind aussagekräftige Namen, die numerische Werte oder Zeichenfolgen ersetzen, die sich nie ändern. Obwohl Konstanten in gewisser Weise Variablen ähneln, können sie nicht wie Variablen geändert werden, und Konstanten können auch keine neuen Werte zugewiesen werden. Konstanten stammen aus zwei Quellen:
1. Interne oder systemdefinierte Konstanten werden von Anwendungen und Steuerelementen bereitgestellt. Visual Basic-Konstanten werden in den Objektbibliotheken Visual Basic (VB) und Visual Basic für Anwendungen (VBA) im „Objektbrowser“ aufgelistet. Andere Anwendungen, die Objektbibliotheken bereitstellen, wie z. B. Microsoft Excel und Microsoft P Project, stellen ebenfalls Listen mit Konstanten bereit, die mit den Objekten, Methoden und Eigenschaften der Anwendung verwendet werden können. Konstanten werden auch in der Objektbibliothek jedes ActiveX-Steuerelements definiert. Weitere Informationen zur Verwendung des Objektbrowsers finden Sie in Kapitel 9, „Programmieren mit Objekten“.
2. Symbolische oder benutzerdefinierte Konstanten werden mit der Const-Anweisung deklariert. Benutzerdefinierte Konstanten werden im nächsten Abschnitt „Erstellen eigener Konstanten“ beschrieben.
In Visual Basic werden Konstantennamen in gemischter Groß- und Kleinschreibung geschrieben und ihr Präfix gibt den Namen der Objektbibliothek an, in der die Konstante definiert ist. Konstanten aus den Objektbibliotheken von Visual Basic und Visual Basic für Applikationen beginnen mit vb, beispielsweise vbTileHorizontal.
Beim Entwerfen von Präfixen sollten Sie Ihr Bestes geben, um versehentliche Konflikte zu vermeiden. Konstanten mit demselben Namen, aber unterschiedlichen Werten sollten nicht vorhanden sein. Selbst wenn Präfixe verwendet werden, können zwei Objektbibliotheken immer noch dieselben Konstanten enthalten, die unterschiedliche Werte darstellen. Welche Konstante referenziert wird, hängt in diesem Fall davon ab, welche Objektbibliothek eine höhere Priorität hat. Informationen zum Ändern der Objektbibliothekspriorität finden Sie im Abschnitt „Dialogfeld „Referenzen“.
Um absolut sicher zu sein, dass es zu keinen Konstantennamenskonflikten kommt, können Sie Referenzen auf Konstanten mit der folgenden Syntax qualifizieren:
[libname.][modulename.]constname
Libname ist normalerweise der Klassenname des Steuerelements oder der Bibliothek. Modulname ist der Name des Moduls, in dem die Konstante definiert ist. Constname ist ein konstanter Name. Jedes Element ist in der Objektbibliothek definiert und kann im Objektbrowser angezeigt werden.
Erstellen Sie Ihre eigenen Konstanten
Die Syntax zum Deklarieren von Konstanten lautet :
[Öffentlich|Privat]Konstantenkonstantenname[Astype]=Ausdruck
Der Parameter „constantname“ ist ein gültiger symbolischer Name (die Regeln sind die gleichen wie für die Festlegung von Variablennamen), und „expression“ besteht aus einer numerischen Konstante oder einer String-Konstante und einem Operator, Funktionsaufrufe können jedoch nicht in „expression“ verwendet werden.
Die Const-Anweisung kann Mengen, Daten und Zeiten darstellen:
ConstconPi=3.14159265358979
PublicConstconMaxPlanetsAsInteger=9
ConstconReleaseDate=#01.01.95#
String-Konstanten können auch mit der Const-Anweisung definiert werden:
PublicConstconVersion=07.10.A
ConstconCodeName=Enigma
Mehrere Konstantendeklarationen können in einer Zeile platziert werden, wenn sie durch Kommas getrennt werden:
PublicConstconPi=3.14,conMaxPlanets=9,_
conWorldPop=6E 09
Der Ausdruck rechts vom Gleichheitszeichen (=) ist häufig eine Zahl oder eine Literalzeichenfolge, kann aber auch ein Ausdruck sein, dessen Ergebnis eine Zahl oder eine Zeichenfolge ist (obwohl der Ausdruck keinen Funktionsaufruf enthalten darf). Sie können sogar neue Konstanten definieren, indem Sie zuvor definierte Konstanten verwenden.
ConstconPi2=conPi*2 Sobald die Konstante definiert wurde, kann sie in den Code eingefügt werden, um den Code besser lesbar zu machen. Zum Beispiel:
StaticSolarSystem(1ToconMaxPlanets)
IfnumPeople>conWorldPopThenExitSub
Legen Sie den Bereich der benutzerdefinierten Konstanten fest
Wie Variablendeklarationen haben Const-Anweisungen einen Gültigkeitsbereich und verwenden dieselben Regeln:
Um eine Konstante zu erstellen, die nur innerhalb einer Prozedur existiert, deklarieren Sie die Konstante innerhalb der Prozedur.
Um eine Konstante zu erstellen, die für alle Prozeduren im Modul, aber nicht für Code außerhalb des Moduls gültig ist, deklarieren Sie die Konstante im Deklarationsabschnitt des Moduls.
Um eine Konstante zu erstellen, die in Ihrer gesamten Anwendung gültig ist, deklarieren Sie sie im Deklarationsabschnitt eines Standardmoduls und platzieren Sie das Schlüsselwort Public vor Const. Öffentliche Konstanten können nicht in einem Formularmodul oder Klassenmodul deklariert werden.
Ausführlichere Informationen zum Gültigkeitsbereich finden Sie im Abschnitt „Verstehen des Gültigkeitsbereichs von Variablen“ weiter oben in diesem Kapitel.
Vermeiden Sie Zirkelbezüge
Da Konstanten anhand anderer Konstanten definiert werden können, muss darauf geachtet werden, keine Zyklen oder Zirkelbezüge zwischen mehr als zwei Konstanten zu erstellen. Eine Schleife tritt auf, wenn ein Programm mehr als zwei öffentliche Konstanten enthält und jede öffentliche Konstante durch eine andere definiert wird. Zum Beispiel:
'In Modul1:
PublicConstconA=conB*2 'In der gesamten Anwendung
' ist gültig in '.
'In Modul2:
PublicConstconB=conA/2 'In der gesamten Anwendung
' ist gültig in '.
Wenn eine Schleife auftritt, generiert Visual Basic beim Versuch, die Anwendung auszuführen, eine Fehlermeldung. Das Programm kann nicht ausgeführt werden, ohne den Zirkelverweis aufzulösen. Um Zyklen zu vermeiden, können öffentliche Konstanten auf ein einzelnes Modul oder höchstens auf wenige Module beschränkt werden.
Datentyp
Eine Variable ist ein Ort zum Speichern von Werten. Sie hat einen Namen und einen Datentyp. Der Datentyp einer Variablen bestimmt, wie die Bits, die diese Werte darstellen, im Speicher des Computers gespeichert werden. Sie können bei der Deklaration einer Variablen auch den Datentyp angeben. Alle Variablen haben einen Datentyp, um zu bestimmen, welche Art von Daten gespeichert werden können.
Wenn der Datentyp in der Deklaration nicht angegeben ist, ist der Datentyp der Variablen standardmäßig Variant. Der Datentyp „Variant“ ist wie ein Chamäleon, er kann bei unterschiedlichen Gelegenheiten unterschiedliche Datentypen darstellen. Wenn es sich bei der angegebenen Variablen um eine Variant-Variable handelt, ist keine Konvertierung zwischen Datentypen erforderlich. Visual Basic führt automatisch verschiedene erforderliche Konvertierungen durch.
Wenn Sie jedoch wissen, dass eine Variable immer Daten eines bestimmten Typs speichert, und Sie eine Variable dieses bestimmten Typs deklarieren, wird Visual Basic diese Daten effizienter verarbeiten. Beispielsweise lässt sich eine Variable, die den Namen einer Person speichert, am besten als Datentyp „String“ darstellen, da Namen immer aus Zeichen bestehen.
Neben Variablen werden auch in anderen Situationen Datentypen verwendet. Wenn einer Eigenschaft ein Wert zugewiesen wird, hat der Wert einen Datentyp; auch die Parameter der Funktion haben einen Datentyp. Tatsächlich bezieht sich in Visual Basic alles, was mit Daten zu tun hat, auf Datentypen.
Sie können auch ein Array eines beliebigen primitiven Typs deklarieren.
DetailsWeitere Einzelheiten finden Sie im Abschnitt „Arrays“ weiter unten in diesem Kapitel. In Kapitel 15, „Entwerfen für Leistung und Kompatibilität“, wird auch die Verbesserung der Anwendungsleistung durch Auswahl von Datentypen erläutert.
Deklarieren Sie Variablen mit Datentypen
Bevor Sie eine Nicht-Variant-Variable verwenden, müssen Sie die Variable mithilfe einer Private-, Public-, Dim- oder Static-Anweisung als Astype deklarieren. Die folgenden Anweisungen deklarieren beispielsweise Variablen vom Typ „Integer“, „Double“, „String“ und „Currency“:
PrivateIAsInteger
DimAmtAsDouble
StaticYourNameAsString
PublicBillsPaidAsCurrency
Eine Deklarationsanweisung kann mehrere Deklarationen kombinieren. Weitere Informationen finden Sie in der folgenden Anweisung:
PrivateIAsInteger,AmtAsDouble
PrivateYourNameAsString,BillsPaidAsCurrency
PrivateTest,Amount,JAsInteger
Beachten Sie, dass die angegebene Variable vom Standardtyp ist, wenn kein Datentyp angegeben wird. Im obigen Beispiel sind die Variablen Test und Amount vom Datentyp Variant. Wenn Ihre Erfahrung mit anderen Programmiersprachen Sie zu der Annahme geführt hat, dass alle Variablen in derselben Deklarationsanweisung denselben angegebenen Datentyp haben (in diesem Fall Integer), dann sind die Ergebnisse hier möglicherweise erfrischend.
Numerischer Datentyp
VisualBasic unterstützt mehrere numerische Datentypen: Integer (Ganzzahl), Long (lange Ganzzahl), Single (Gleitkomma mit einfacher Genauigkeit), Double (Gleitkomma mit doppelter Genauigkeit) und Währung (Währung). Numerische Typen beanspruchen im Allgemeinen weniger Speicherplatz als Variant-Typen.
Wenn Sie wissen, dass eine Variable immer ganze Zahlen (z. B. 12) und keine Zahlen mit einem Dezimalpunkt (z. B. 3,57) speichert, sollten Sie sie als Typ „Integer“ oder „Long“ deklarieren. Ganzzahlen führen Operationen schneller aus und beanspruchen weniger Speicher als andere Datentypen. Ganzzahltypen sind besonders nützlich, wenn sie als Zählervariablen in For...Next-Schleifen verwendet werden.
Weitere Informationen zu Kontrollstrukturen finden Sie weiter unten in diesem Kapitel unter „Übersicht über Kontrollstrukturen“. Wenn die Variablen Dezimalzahlen enthalten, können sie als Einzel-, Doppel- oder Währungsvariablen deklariert werden. Der Währungsdatentyp unterstützt 4 Stellen rechts vom Dezimalpunkt und 15 Stellen links vom Dezimalpunkt. Es handelt sich um einen präzisen Festkomma-Datentyp, der für Währungsberechnungen geeignet ist. Gleitkommazahlen (Einzel- und Doppelzahlen) haben einen viel größeren gültigen Bereich als Währungen, es sind jedoch kleine Übertragsfehler möglich.
Beachten Sie, dass Gleitkommawerte als mmmEeee oder mmmDeee dargestellt werden können, wobei mmm die Mantisse und eee der Exponent (hoch zur Basis 10) ist. Der maximale positive Wert des Single-Datentyps beträgt 3,402823E 38 oder 3,4 mal 10 hoch 38; der maximale positive Wert des Double-Datentyps beträgt 1,79769313486232D 308 oder 1,8 mal 10 hoch 308. Wenn Sie D zum Trennen der Mantissen- und Exponententeile eines numerischen Literals verwenden, wird der Wert als Double-Datentyp behandelt. Ebenso führt die Verwendung von E auf diese Weise dazu, dass der Wert als Single-Datentyp behandelt wird.
Byte-Datentyp
Wenn die Variable eine Binärzahl enthält, deklarieren Sie sie als Array vom Datentyp Byte (Arrays werden später in diesem Kapitel unter „Arrays“ besprochen). Durch das Speichern von Binärdaten in Byte-Variablen bleiben die Daten während der Formatkonvertierung erhalten. Wenn eine String-Variable zwischen ANSI- und Unicode-Format konvertiert wird, werden alle Binärdaten in der Variablen zerstört. Visual Basic konvertiert in den folgenden Situationen automatisch zwischen ANSI und Unicode:
Beim Lesen einer Datei
Beim Schreiben einer Datei
Beim Aufruf einer DLL
Beim Aufrufen von Methoden und Eigenschaften eines Objekts
Mit Ausnahme der unären Subtraktion können alle Operatoren, die mit Ganzzahlen arbeiten können, mit dem Datentyp Byte arbeiten. Da Byte ein vorzeichenloser Typ von 0 bis 255 ist, kann es keine negativen Zahlen darstellen. Wenn Sie also eine unäre Subtraktion durchführen, wandelt VisualBasic zunächst das Byte in eine vorzeichenbehaftete Ganzzahl um.
Alle numerischen Variablen können einander und Variablen vom Typ Variant zugewiesen werden. Bevor einer Ganzzahl eine Gleitkommazahl zugewiesen wird, rundet Visual Basic den Dezimalteil der Gleitkommazahl, anstatt ihn zu entfernen.
Details Einzelheiten zur Unicode- und ANSI-Konvertierung finden Sie in Kapitel 16, „Internationalisierung“.
String-Datentyp
Wenn eine Variable immer eine Zeichenfolge und niemals einen numerischen Wert enthält, können Sie sie als Typ String deklarieren.
PrivateSAsString
Anschließend können Sie dieser Variablen eine Zeichenfolge zuweisen und sie mithilfe von Zeichenfolgenfunktionen bearbeiten.
S=Datenbank
S=Links(S,4)
Standardmäßig ist eine String-Variable oder ein String-Parameter eine Zeichenfolge variabler Länge. Wenn einer Zeichenfolge neue Daten zugewiesen werden, kann sich ihre Länge erhöhen oder verringern. Es ist auch möglich, einen String mit einer festen Länge zu deklarieren. Eine Zeichenfolge fester Länge kann mit der folgenden Syntax deklariert werden:
String*Größe
Um beispielsweise eine Zeichenfolge mit 50 Zeichen zu deklarieren, verwenden Sie die folgende Anweisung:
DimEmpNameAsString*50
Wenn der Zeichenfolge weniger als 50 Zeichen zugewiesen werden, wird der fehlende Teil von EmpName mit Leerzeichen aufgefüllt. Wenn die der Zeichenfolge zugewiesene Länge zu lang ist und nicht zu einer Zeichenfolge mit fester Länge werden kann, schneidet Visual Basic die überschüssigen Zeichen direkt ab.
Da Zeichenfolgen fester Länge am Ende des zusätzlichen Leerzeichens mit Leerzeichen aufgefüllt werden, können sich die Funktionen „Trim“ und „RTrim“, die Leerzeichen entfernen, beim Umgang mit Zeichenfolgen fester Länge als sehr nützlich erweisen. Zeichenfolgen fester Länge in Standardmodulen können als öffentlich oder privat deklariert werden. In Formularen und Klassenmodulen müssen Zeichenfolgen fester Länge als „Privat“ deklariert werden.
Einzelheiten finden Sie unter „Ltrim-, RTrim- und Trim-Funktionen“ im „Visual Basic 6.0 Language Reference Manual“.
Tauschen Sie Zeichenfolgen und Zahlen aus
Wenn die Zeichenfolge einen numerischen Wert darstellt, kann die Zeichenfolge einer numerischen Variablen zugewiesen werden. String-Variablen können auch numerische Werte zugewiesen werden. Platzieren Sie beispielsweise Befehlsschaltflächen, Textfelder und Listenfelder in einem Formular. Geben Sie den folgenden Code in das Click-Ereignis der Befehlsschaltfläche ein. Führen Sie die Anwendung aus und klicken Sie auf die Befehlsschaltfläche.
PrivateSubCommand1_Click()
DimintXAsInteger
DimstrYAsString
strY=100,23
intX=strY 'String an numerische Variable übergeben.
List1.AddItemCos(strY) 'Füge den Kosinuswert des Werts in der Zeichenfolge hinzu.
„Zum Listenfeld hinzufügen.“
strY=Cos(strY) 'Kosinuswert in String-Variable übertragen.
Text1.Text=strY 'Zeichenfolge im Textfeld anzeigen.
EndSub
Visual Basic erzwingt Variablen automatisch den entsprechenden Datentyp. Seien Sie beim Konvertieren von Zeichenfolgen und numerischen Werten vorsichtig. Wenn der Wert in der übergebenen Zeichenfolge kein numerischer Wert ist, tritt zur Laufzeit ein Fehler auf.
Boolescher Datentyp
Wenn der Wert der Variablen nur die Informationen „wahr/falsch“, „ja/nein“ und „ein/aus“ enthält, kann er als boolescher Typ deklariert werden. Der Standardwert von Boolean ist False. Im folgenden Beispiel ist blnRunning eine boolesche Variable, die eine einfache Ja/Nein-Einstellung speichert.
DimblnRunningAsBoolean
„Überprüfen Sie, ob sich das Band dreht.“
IfRecorder.Direction=1Then
blnRunning=True
Endif
Datumsdatentyp
Datums- und Uhrzeitwerte können entweder im spezifischen Datumsdatentyp oder in Variant-Variablen enthalten sein. Allgemeine Datumseigenschaften gelten für beide Typen.
Weitere Informationen finden Sie im Abschnitt „Speichern von Datums-/Uhrzeitwerten in Variantenvariablen“ der „Erweiterten Variablenthemen“ im Online-Handbuch.
Wenn andere numerische Datentypen in „Datum“ konvertiert werden, stellt der Wert links vom Dezimalpunkt Datumsinformationen dar und der Wert rechts vom Dezimalpunkt stellt die Zeit dar. Mitternacht ist 0 und Mittag ist 0,5. Negative Zahlen stehen für Daten vor dem 31. Dezember 1899 n. Chr.
->