Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung

...powered by haas.homelinux.net...

Einstieg in VB.NET von René Martin
- Für Programmiereinsteiger -
Einstieg in VB.NET
gp Kapitel 1 Die Grundlagen
  gp 1.1 Nach der Installation
  gp 1.2 Der erste Start
  gp 1.3 Das erste Formular
  gp 1.4 Eigenschaften
    gp 1.4.1 Regeln für Namen
    gp 1.4.2 Die Eigenschaften
  gp 1.5 Die Toolbox
  gp 1.6 Das Meldungsfenster
    gp 1.6.1 Die Code-Eingabe für die MessageBox
    gp 1.6.2 Ein Wort zum »alten« Visual Basic
    gp 1.6.3 Die Code-Eingabe allgemein
  gp 1.7 Ein Textfeld
  gp 1.8 Texte verketten
  gp 1.9 Andere Zeichen
    gp 1.9.1 Noch ein Wort zum Code-Tippen
    gp 1.9.2 Ein Wort zur Syntax
  gp 1.10 Variablen
  gp 1.11 Ein theoretischer Exkurs: Werte- und Referenztypen
  gp 1.12 Zuweisen von Werten an Variablen
  gp 1.13 Verzweigungen
  gp 1.14 Einige Hilfen für den Benutzer
    gp 1.14.1 Setze den Cursor in ein Textfeld
    gp 1.14.2 Ok und Abbrechen
    gp 1.14.3 Die Reihenfolge der Steuerelemente
  gp 1.15 Ein zweites Textfeld
    gp 1.15.1 Vergleiche
  gp 1.16 Rechnen in Basic
  gp 1.17 Optionsfelder
    gp 1.17.1 Schnell und ordentlich mehrere Steuerelemente platzieren
  gp 1.18 Ein zweites Gruppenfeld
  gp 1.19 Dynamische Steuerelemente
  gp 1.20 Das Ereignis »Klick«
  gp 1.21 Prozeduren
  gp 1.22 Ein theoretischer Exkurs: Prozeduren
  gp 1.23 Module
  gp 1.24 Ein theoretischer Exkurs: Objekte, Eigenschaften und Methoden
    gp 1.24.1 Objekte
    gp 1.24.2 Methoden
    gp 1.24.3 Eigenschaften
  gp 1.25 Zusammenfassung


Galileo Computing

1.10 Variablen  toptop

Manchmal kann es passieren, dass das Programm sich den eingegebenen Namen »merken« muss. Sei es, weil er an mehreren Stellen verarbeitet wird, sei es, weil er erst später verarbeitet wird. Deshalb gibt es in jeder Programmiersprache Variablen. Der Wert

txtName.Text

soll vorübergehend mit Hilfe einer Variablen gespeichert werden. Damit bin ich wieder bei meinem Begriff von »Sauberkeit«. Eine Variable sollte sauber deklariert werden. Das passiert am Anfang der Prozedur, also in unserem Fall nach:

Private Sub cmdOk(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles cmdOk.Click

Die Syntax lautet:

Dim Variablenname as Variablentyp

beispielsweise:

Dim Benutzer As String

Es genügt übrigens auch hier, nach dem Schlüsselwort As die ersten drei Buchstaben »str« einzutippen. Dann springt die Markierung auf den korrekten Variablentyp. Mit (ÿ) kann das Ergebnis bestätigt werden.

Für den Namen der Variablen gibt es bestimmte Regeln. Der Name darf bis zu 255 Zeichen lang sein und alle Zeichen enthalten außer Leer-, Satz- und Sonderzeichen: .,;:-!»§$%&/(){<>}\^. Auch der Bindestrich »-« darf nicht verwendet werden. Dagegen sind der Unterstrich (»_«), Groß- und Kleinschreibung (VB.NET macht keine Unterschiede) sowie die zehn Ziffern erlaubt, das erste Zeichen darf allerdings keine Ziffer sein. Der Name der Variablen muss selbstverständlich eindeutig sein (es dürfen nicht zwei Variablen gleich heißen) und darf nicht mit einem Schlüsselwort übereinstimmen. Schlüsselwörter sind:

gp  alle Befehle und Anweisungen: GoTo, Dim, As, If, While ...
gp  alle Funktionen: Sin, Cos, Date, Year ...
gp  alle logischen Operatoren: And, Or, Not ...
gp  andere Statements: AddressOf, As, Declare, Is, Let ...

Folgender Name ist gültig:

x, Hugo, Mein_erster_Platzhalter, R2D2 oder H2SO4

Auch die Namen der Variablen sollten ein Präfix besitzen, an dem ihr Typ erkennbar ist. Diese Konvention, die von der Firma Gregory Reddick & Associates, einer Unternehmensberatung von Microsoft, herausgegeben wurde, ist nicht verbindlich. Allerdings arbeiten sehr viele Programmierer damit (ich zum Beispiel). Die Konvention stellt eine Möglichkeit der Standardisierung für VB.NET-Programmierung dar. Sie müssen sich natürlich nicht daran halten, sollten sich aber, wenn Sie zu mehreren an einem Projekt programmieren, über die Benennung der Variablen einig sein.

Hier die Liste der Variablentypen:

Tabelle 1.3   Liste der Variablentypen in VB.NET
Datentyp Variablentyp Erklärung
Text String Zeichenkette, also beliebig viele Buchstaben und Ziffern
  Char nur ein Zeichen (Unicode 16-Bit-Zeichen)
Zahlen ohne Kommastellen Byte ganze Zahl zwischen 0 und 255
  Short ganze Zahl zwischen -32.768 und 32.767
  Integer ganze Zahl zwischen –2.147.483.648 und 2.147.483.647
  Long ganze Zahl zwischen –9.223.372.036.854.775.808 und 9.223.372.036.854.775.807
Zahlen mit Kommastellen Single einfach genaue Fließkommazahl
  Double doppelt genaue Fließkommazahl
  Decimal Fließkommazahl (96-Bit-Zahl)
Wahrheitswert Boolean »Wahr« oder »Falsch«
Datumsangaben Date Datum
  DateTime Datum mit Uhrzeitangabe
Objekte Object Objekte, wie andere Programme, Tabellen, Dateien …

Abbildung

Abbildung 1.20   Eine Variable wird deklariert.

Wer sich die Liste genau ansieht und mit der Auswahlliste in VB.NET vergleicht, stellt fest, dass ich nicht alle Typen mit diesem blauen Kästchen-Symbol erklärt habe. Das ist korrekt. Einige Typen (Int16, Int32, Int64, UInt16 ...) sind interne Datentypen und stehen zum Austausch mit C# zur Verfügung, sie sind also für uns uninteressant. Eine ganze Reihe von Elementen dieser Liste hat andere Symbole. Über einige davon werden wir noch sprechen. Doch zuerst möchte ich, dass die Datentypen jedem klar sind. Ich nenne ein Element und Sie überlegen sich, wie man es deklarieren würde.

Nehmen wir ein Beispiel. Schuhgröße?

Byte.

Richtig. Lebensalter?

Byte.

Richtig. Postleitzahlen?

Short.

Falsch. Short läuft bis 32.767. Damit könnten wir keine mittel- und süddeutschen Postleitzahlen (südlich von Detmold) eingeben. Schade um die Bayern.

Okay, Integer.

Auch das ist ungünstig: die Sachsen machen ein Problem. Leipzig Innenstadt hat beispielsweise die Postleitzahl 04105. Ich würde String verwenden. In Österreich oder der Schweiz sieht es in puncto Postleitzahlen anders aus: Dort sind Postleitzahlen vierstellig und haben keine führende Null. Bankleitzahl?

Bankleitzahlen haben maximal acht Stellen. Meine beginnt mit einer »7«. Short ist zu kurz, Integer müsste passen.

Korrekt. Kontonummer?

Uh, die können lang sein: Double?

Richtig. Kontonummern können bis zu zehn Ziffern lang sein. Also wäre Integer zu kurz. Mit Long kommt man auch aus. Aber sicher ist sicher. Double ist besser.

Telefonnummern?

Auch Double?

Nein. Denken Sie mal an die führende Null bei der Vorwahl, an den Schrägstrich oder das Leerzeichen. Das muss auch als String eingegeben werden; und Hausnummern ebenfalls. Ich wohne in der Magnus-Hirschfeld-Straße 7b.

Wenn Sie mit Präfixen arbeiten, dann stehen Ihnen folgende Präfixe zur Verfügung:

Tabelle 1.4   Die Liste der Variablentypen und ihrer Präfixe
Variablentyp Kürzel Beispiel Speicherplatz
String str strName  
Char char charZeichen nur ein Zeichen (Unicode 16-Bit-Zeichen)
Byte byt bytAlter ganze Zahl zwischen 0 und 255
Short     ganze Zahl zwischen –32.768 und 32.767
Integer int intArtikelnummer ganze Zahl zwischen –2.147.483.648 und 2.147.483.647
Long lng lngKontonummer ganze Zahl zwischen –9.223.372.036.854.775.808 und 9.223.372.036.854.775.807
Single sng sngGewicht einfach genaue Fließkommazahl
Double dbl dblDistanz doppelt genaue Fließkommazahl
Decimal dec decWarp Fließkommazahl (96-Bit-Zahl)
Boolean f FSchalter »Wahr« oder »Falsch«
Date dat DatDatum Datum
DateTime tim TimUhrzeit Datum mit Uhrzeitangabe

Mehrere Variablen können gleichzeitig deklariert werden. Entweder vom gleichen Typ:

Dim intZahl1, intZahl2, intZahl3 As Integer

oder als unterschiedliche Typen:

Dim x As Integer, decGewicht As Decimal, _
   strName As String

Ein Wort zu Char: Eine Variable vom Typ String wird folgendermaßen deklariert:

Dim strText As String = "Harry Potter"

Wenn Sie diesen Typ verwenden, dann dürfen Sie nicht wie bei String analog schreiben:

Dim charZeichen as Char = "Y"

sondern müssen es mit dem Litteral »c« kennzeichnen:

Dim charZeichen as Char = "Y"c

Aber vielleicht können wir auch ganz auf diesen Datentyp verzichten und verwenden lediglich String.

Übrigens könnte man auf die Variablendeklaration sogar verzichten (dies wird implizite Variablendeklaration genannt). Man könnte unter Projekt Eigenschaften einstellen, dass keine Variablendeklaration erforderlich ist (Kategorie »Erstellen«). Dort könnte man die Option Explicit auf »Off« setzen. Dann wird die Variable einfach im Code verwendet. Dies hat allerdings einige Nachteile:

Wird eine Variable deklariert und wird sie im Quellcode falsch geschrieben, dann wird dies gekennzeichnet. Wird eine Variable nicht deklariert, so bekommt sie den Datentyp Object zugewiesen, der sehr viel mehr Speicherplatz benötigt. Insgesamt wird das Programm langsamer und fehleranfälliger. Das heißt: Das Risiko, dass das Programm abstürzt, ist größer. Also, Variablen immer deklarieren! Es hat nur Vorteile.

Abbildung

Abbildung 1.21   Eine Variable wurde falsch geschrieben.

Vielleicht stellen Sie sich die ganze Zeit die Frage, warum wir dieses seltsame Spiel treiben. Die Antwort wurde oben schon gegeben. Gerechnet werden kann nur mit einer Zahl. Deshalb muss ich vorher wissen, ob die Eingabe als Berechnung weiterverarbeitet wird oder nicht. Nun könnte man argumentieren, dass dann zwei Typen genügen. Es gibt aber noch einen zweiten Grund für eine saubere Variablendeklaration: Speicherplatz. Je kleiner die Variablen deklariert sind, umso weniger Speicher benötigen sie. Wie viel sie brauchen, steht oben in der Liste. Zwar ist es bei zwei oder drei Variablen egal, ob sie vom Typ »Byte« oder »Double« sind, dafür sind unsere Rechner schon schnell genug. Aber bei vielen Hundert Variablen macht sich der Speicherplatz (oder nicht mehr vorhandene Arbeitsspeicher) in der Geschwindigkeit bemerkbar.

Zwar könnte man nun argumentieren, dass die Sache mit den Typen in VB.NET gar nicht so wichtig ist, weil das Programm die Typen automatisch konvertiert. Das sollten Sie jedoch vermeiden, da der Code instabiler wird. Zwar funktioniert:

Dim i As Integer = 7
MessageBox.Show("Die Zahl lautet: " & i)

besser ist aber folgende Lösung:

Dim i As Integer = 7
MessageBox.Show("Die Zahl lautet: " & _
   i.ToString)

Man kann sich den »Fehler« anzeigen lassen, indem in Projekt Eigenschaften im Ordner Erstellen Option Strict eingeschaltet wird.

Also: Variablen sollten korrekt, so klein wie möglich und so groß wie nötig deklariert werden.

  

VB.NET

Einstieg in ASP.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML