VB NET Tutorial 1: Variablen
Inhaltsverzeichnis
- 1 Variablen – Die digitalen Schubladen der Programmierung
- 2 Das VB NET Tutorial 1 im Videoformat auf YouTube
- 3 VB NET Tutorial 1: Variablen – Ein alter Bekannter aus dem Matheunterricht, oder!?
- 4 Unterschiedliche Wert-Arten – sogenannte Datentypen
- 5 VB NET Variablen – Let’s Go!
- 6 Ein Blick zurück zu (nur) Visual Basic
- 7 Arten der Definition
- 8 Bäumchen wechsle dich!
- 9 Fazit
- 10 Im nächsten Tutorial
- 11 Downloads
- 12 Weiterführende Links
Variablen – Die digitalen Schubladen der Programmierung
Willkommen zum VB NET Tutorial 1, Deinem ersten Visual Basic NET Tutorial (jedenfalls aus meiner Tutorial-Reihe)! In diesem ersten Beitrag werde ich versuchen, Dir den Einstieg in die Programmierung mit Visual Basic NET zu ebnen. Das erste Visual Basic NET (oder kurz VB.NET) Tutorial wird sich um das wohl gängigste Anfänger-Thema drehen.
Das VB NET Tutorial 1 im Videoformat auf YouTube
Natürlich hast Du auch die Möglichkeit, dieses Tutorial auf YouTube anzusehen.
Ich denke, dass ich bald eventuell mal eine Neuauflage des Videos machen werde.
Der wesentlich überarbeitete Inhalt hier, stimmt leider nicht mehr mit dem Video überein.
Mittlerweile ist das Video immerhin ein bisschen in die Jahre gekommen, aber natürlich trotzdem noch informativ.
Bis ich das Video allerdings erneuert habe, würde ich Dir diesen Beitrag hier eher ans Herz legen!
VB NET Tutorial 1: Variablen – Ein alter Bekannter aus dem Matheunterricht, oder!?
Im ersten Teil der Visual Basic NET Tutorial-Reihe, lernst Du die Verwendung von Variablen kennen.
Variablen an sich werden Dir vermutlich bereits ein Begriff sein, da Sie schon in der Schulzeit vorkamen.
Auch deren Verwendung in der Programmierung funktioniert analog zu Jenen aus dem Matheunterricht.
Letztendlich dienen Sie als Ablage für einen gewissen Wert, Welcher dynamisch verändert werden kann.
In der Programmierung verwendet man Variablen, um darin Daten zu speichern.
Variablen können „statisch“ gesehen, wie „x = 5“ definiert werden, oder z. B. das Ergebnis gewisser Prozesse sein.
Dabei spreche ich von dem Wert, der letztendlich „hinter“ der Variable steckt.
Unterschiedliche Wert-Arten – sogenannte Datentypen
Wie Du Dir sicherlich vorstellen kannst, wäre es ziemlich schwer, in der Programmierung nur mit Zahlen auszukommen.
Daher können Variablen glücklicherweise ganz viele verschiedene Werte, speichern.
Diese Werte können von sehr unterschiedlicher Natur, bzw. sogenannten Datentypen sein.
Seien es beispielsweise Zahlen, ein Geburtsdatum, einzelne Zeichen, oder gar ganze Texte.
Wäre blöd, wenn wir dem Nutzer sonst sagen müssten:
„Nein Herr/Frau Mustermann, Sie können keine Zahlen eingeben, unser Programm unterstützt nur Wörter!
Wäre ja sonst langweilig..
Du kannst Dir die dementsprechenden Blicke der Kunden mit Sicherheit vorstellen.
Letztendlich zurecht, denn obige Situation wäre vermutlich ein Armutszeugnis an Programm.
So wäre ein CRM-Programm und dessen Funktionen natürlich unmöglich vorstellbar.
Wobei die Rechnungsstellung so vermutlich Spaß machen würde – also so nur mit Zahlen 😛!
Eine Variable ist somit also ein Hilfsmittel, Welches uns erlaubt, mit Daten zu arbeiten.
Um mit Variablen zu arbeiten, können wir Diese mit einer Art „Namen“ ansprechen.
Man muss natürlich auch irgendwie sagen können: „Hey, du bekommst den Wert..“, oder „Gib mir mal bitte deinen Wert..“.
Aber genug davon, gehen wir über zum nächsten Punkt: Konkrete Beispiele.
VB NET Variablen – Let’s Go!
Nach außen wirken die Zuweisungen von Variablen also erstmal alle gleich.
Schließlich sagt man meistens einfach nur, dass ein irgendwie benanntes „Ding„, einen gewissen Wert bekommt.
Wie oben schon erwähnt, kann es sich dabei z. B. um die typischen Zahlen aus dem Matheunterricht handeln.
Für viele Anfänger wird es jedoch neu sein, dass Variablen auch „komplexe Daten“ speichern können.
Dabei handelt es sich eventuell um so etwas wie eine Lieferung, eine Rechnung, oder gar einen Kunden.
Natürlich setzen sich diese sogenannten Objekte auch wiederum auch aus den bekannten simplen Werten wie Zeichen, etc. zusammen.
Darüber werden wir allerdings erst in einem späteren Teil dieser Tutorial-Reihe sprechen.
Konkrete Beispiele
Nehmen wir als erstes Beispiel den in Deutschland wohl bekanntesten Namen, also einen Text, wie z. B. „Max Mustermann“.
Okay, zugegebenermaßen „Müller„, etc. wäre auch passend gewesen, aber bleiben wir einmal bei Herr Mustermann.
In der Programmierung nennt man diese Zeichenfolge – also eine tatsächliche Abfolge von Zeichen – einen String.
Als nächstes Beispiel könnten wir Jahreszahlen, wie z. B. 2020, 2021, oder 2022 nehmen.
Es gibt neben den stinknormalen Ganzzahlen noch weitere Arten, ich würde Dich zu diesem Zeitpunkt aber ungern überfordern.
Wir belassen es daher an dieser Stelle einfach dabei, dass es sich hier um einen „Integer“ handelt.
Eine kleine Zusatzinformation wäre noch, dass man natürlich auch negative Zahlen wie „-5“ verwenden könnte.
Der erste Code – VB NET Tutorial 1
Kommen wir nun zu unseren ersten Codezeilen, wo wir einfach mal 2 unterschiedliche Variablen definieren.
Der Quellcode zur Festlegung zweier Variablen mit den oben genannten Werten, würde so aussehen:
Dim vollerName As String = "Max Mustermann" Dim jahresZahl As Integer = 2022
Ich werde auch gleich noch auf die unterschiedlichen Methoden zur Definition eingehen.
Zuerst schauen wir uns einmal an, was der Code im Detail macht und was dort für „Schlüsselworte“ sind.
Grundsätzlich könnte man den obigen Code erstmal als folgendes Muster beschreiben:
- Deklaration
- Dimensionierung
- Wertzuweisung
Wenn man sich eine obige Zeile ansieht, kann es dort vor allem als Anfänger schnell zur Verwirrung kommen.
Lass Dich nicht verwirren
Die Reihenfolge die ich beschrieben habe, stimmt ggf. nicht auf den ersten Blick mit dem Code überein.
Man könnten ja meinen, dass das Schlüsselwort „Dim“ für die Dimensionierung zuständig ist.
Würde ja zumindest allgemein sprach-technisch Sinn ergeben und so war es auch mal.
Zumindest galt das damals in VB6 für „Arrays“ (deutsch auch Felder/Datenfelder genannt).
Diese müssen Dir aber natürlich zum jetzigen Zeitpunkt noch nichts sagen, daher legen wir Sie erstmal beiseite.
Um das mit dem „Dim“ zu verstehen, muss man die Geschichte von VB NET (Visual Basic .NET) betrachten.
Ein Blick zurück zu (nur) Visual Basic
Kurz erklärt, entspringt die „NET„-Variante, Welche sich auf das NET Framework bezieht, aus der vorherigen VB- (nur Visual Basic) Version.
Dort war die „Dim„-Anweisung für die Speicherreservierung (Dimensionierung) von Arrays zuständig.
In Visual Basic NET wurde dieser Befehl sozusagen recycelt und dient von nun an der Deklaration von Variablen.
Im Endeffekt kündigt es also im ersten Schritt nur an: „Hey, da kommt was, was XY heißt“ – mehr nicht!
Merke Dir also: Möchte ich eine Variable definieren, verwende ich das Schlüsselwort „Dim„.
Die Dimensionierung, also die tatsächliche Speicherreservierung findet erst statt, sobald der Datentyp klar ist.
Datentypen werden durch die sogenannte „As“-Klausel angegeben, wodurch dann Speicher reserviert werden kann.
Klar, im Endeffekt kann man ja nur für etwas reservieren, von dem man weiß, was es ist!
Übung macht den Meister!
Auch wenn Du an dieser Stelle eventuell noch nicht durchblickst, vertraue mir, das kommt noch.
Häufig – und so ging es mir auch am Anfang – werden die Sachen erst bei aktiver Verwendung klarer.
Es kommt also manchmal einfach mit der Erfahrung, die Dinge zu verstehen.
Besonders wenn gewisse Dinge erstmal ins Muskelgedächtnis übergegangen sind ist das hilfreich.
Also dann, wenn Du den Zustand erreichen konntest, über einzelne Konstrukte beim Schreiben nicht mehr nachdenken zu müssen.
Arten der Definition
Oben haben wir nun die ersten beiden Beispiele für die Definition von Variablen gesehen.
Danach gab es noch ein paar wichtige, rudimentäre Zusatzinformationen zum Hintergrund von Visual Basic NET.
Lass uns nun mal schauen, Welche weiteren Definitionsmöglichkeiten wir für Variablen haben.
Diese Definitionsmöglichkeiten müssten wir für das bessere Verständnis vermutlich aufschlüsseln.
Sicherlich wird dies zu einem späteren Zeitpunkt z. B. noch beim Thema Klassen erweitert.
Zum jetzigen Zeitpunkt belassen wir es aber bei den Variablen-Basics.
Variante 1 – Die simple Deklaration
Im obigen Text habe ich schon einmal angedeutet, dass die obige Definition der Variablen von 3 Bausteinen geprägt ist.
Es geht allerdings für eine simple sogenannte Deklaration auch einfacher.
Dies ist dann mehr oder weniger nur eine Ankündigung der Variable, ohne jegliche Wertzuweisung.
Eine Wertzuweisung während der Deklaration bezeichnet man auch leicht anders, aber gleich mehr dazu.
Eine wirklich simple Deklaration a la „Hey, es gibt da das Ding namens XY sieht“ sieht daher so aus:
Dim vorname As String
Mehr ist dafür nicht von Nöten, nur:
- Das Dim-Schlüsselwort
- Name der Variable
- As <Datentyp> Klausel
Man könnte den Code auch einfach wie folgt ins Deutsche übersetzen:
Lege eine Zeichenketten-Variable namens „vorname“ fest – Punkt.
Variante 2 – Die Initialisierung
Das nächste Beispiel wird sich durch einen wie oben bereits gezeigten Mini-Schritt unterscheiden.
Auch wenn wir mit den vorherigen Beispielen schon erfolgreich Variablen deklarieren konnten, sind dies eben nur Deklarationen.
Wenn wir die Variablen nun direkt bei der Deklaration mit Werten versehen möchten, können wir das relativ einfach erledigen.
In der Programmierung nennt man das für gewöhnlich Initialisierung.
Ich deklariere also eine Variable und weise Ihr im selben Schritt bereits einen Wert zu.
Hier siehst Du noch einmal 2 Beispiele zur Initialisierung von Variablen:
Dim youtubeKanal As String = "RobbelRoot" Dim alter As Integer = 30
Neben dem angesprochenen „Lege .. fest als ..“ kommt nun also noch etwas hinzu.
Wieder ist dies ein alter Bekannter aus dem Matheunterricht namens „Gleichheitszeichen„.
Hinter dem Gleichheitszeichen muss dann nur noch ein zum Datentyp passender Wert folgen.
Schließlich ist eine Zahl etwas anderes als ein „b“ und auch ein Geburtsdatum unterscheidet sich zum Beispiel.
Ein Geburtsdatum wäre ja sogar eine Mischung aus Zeichen und Zahlen.
Dieser Wert wird in diesem Kontext auch gerne als sogenanntes „Literal“ bezeichnet.
Variante 3 – Die Kombination aus beiden
Die letzte Variante zur Definition von Variablen ist die Kombination der beiden vorherigen Möglichkeiten.
Dabei verwenden wir wie gewohnt die „Dim„-Anweisung, jedoch lassen wir in diesem Fall die „As„-Klausel weg:
Dim preis = 149
In diesem Fall wird der Datentyp anhand des zugewiesenen Wertes ermittelt – toll, oder!?
Die sogenannte Typinferenz
Diese „Funktionalität“ nennt man Typinferenz, da der Typ von dem zugewiesenen Wert inferiert wird.
Inferieren heißt im Endeffekt nichts anderes als: etwas mitbringen, mit etwas beitragen, logisch fordern.
Ich persönlich finde die Erfassung von Datentypen via Typinferenz sehr angenehm und effizient.
Es sei jedoch angemerkt, dass es auch einige Entwickler gibt, Welche die Typinferenz verteufeln.
Diese Entwickler sind der Meinung, dass diese non-explizite Weise der Typangabe unsauber ist.
Obwohl wir noch nicht beim Thema „verschiedene Zahlen-Datentypen“ angekommen sind, mache ich mal ein Beispiel.
Lass Dich aber nicht davon verwirren, da es vermutlich im zweiten Teil zu den Variablen angesprochen wird.
Warum manche Entwickler die Typinferenz ablehnen
Unter anderem dieses Beispiel könnte die Ablehnung mancher Entwickler gegenüber der Typinferenz erklären:
Dim unbekannteZahl = 5
Wenn Du diesen Code einmal in Deine Programmierumgebung namens Visual Studio eingibst, wirst Du folgendes sehen:
Es wird hier automatisch der Datentyp „Integer“ suggeriert, was aber nicht zwangsweise stimmen muss.
Wenn ich zum Beispiel im Programm mit Dezimalzahlen arbeiten möchte, wäre dies hier schon nicht mehr „möglich“.
Zumindest dieses kleine Problem könnte man schnell lösen, wenn man das „richtige“ Literal verwendet:
Dadurch würde ich nun die Möglichkeit haben, mit Dezimalzahlen zu arbeiten, aber da gibt es leider noch mehr..
Daher gehen wir an dieser Stelle nochmal zurück zu dem Integer, also der einfachen Ganzzahl.
Wie wir im nächsten Tutorial-Teil zu den Variablen noch lernen werden, gibt es dort Unterschiede.
Man könnte – ohne zu viel zu spoilern – sagen, dass es unterschiedliche Größen, bzw. Bereiche gibt.
Er weiß nicht sollte wissen was er tut..
Das typische „Byte„, wovon viele irgendwo mal gehört haben, kann eine weniger große Zahl, als Andere Zahlen-Datentypen speichern.
Im Vergleich dazu hätten wir auch noch die riesige Zahl namens „Long„, Welche wirklich (wirklich) große Zahlen speichern kann.
Also erneut: Mit dem obigen Beispiel des „Integers“ suggerieren wir einfach eine gewisse Größe.
Solange man das weiß ist alles gut, wenn man es eventuell übersieht, kann es blöd werden.
Ansonsten kann man dann wie erwähnt noch durch gewisse Literale nachhelfen.
Letztendlich bestimmt das entwickelnde Software-Team nachher die Konventionen.
Oft bekommt man durch die Arbeit als Entwickler auch gewisse „Schreib-Regeln“ vorgesetzt.
Dies kann durch das Team, den Chef, oder z. B. durch den Kunden geschehen.
Bäumchen wechsle dich!
In den bisherigen Beispielen haben wir uns größtenteils mit der Definition von Variablen beschäftigt.
Wer sich aber die Bezeichnung „Variable“ selbst einmal anschaut, wird etwas feststellen.
Das Nomen „Variable“ steht nicht umsonst in Verwandtschaft mit dem Adjektiv „variabel„.
Der Inhalt, bzw. der Wert hinter der Variable ist – richtig vermutet – nicht statisch.
Wir können den Wert also zur Laufzeit des Programmes dynamisch anpassen.
Weitere „Arten“ von „Variablen“
Später werden wir auch noch weitere Arten von Variablen kennenlernen.
Diese sind im Gegensatz dazu nicht variabel, sprich man kann Sie nicht ändern.
Welche Vorteile und eventuell auch Nachteile daraus entstehen können, schauen wir uns später an.
Ein kleiner Spoiler wäre, dass es sich dabei z. B. um Konstanten handelt.
Wie der Name schon vermuten lässt, sind Diese eben halt – konstant, sprich nicht veränderbar!
Zurück zur Variable, Welche eigentlich für das Wort „veränderbar“ stehen könnte.
Wert einer Variablen ändern
Initialisieren wir also wie neu gelernt eine Variable via Typinferenz.
Zur Wiederholung: Wir leiten den Ziel-Datentyp aus dem zugewiesenen Wert ab.
Dim vorname = "Robert"
Ich habe hier also das „Dim„-Schlüsselwort verwendet und anschließend einen Namen (vorname) festgelegt.
Im gleichen Schritt haben wir der Variable einen Wert zugewiesen, sprich initialisiert.
Durch die Angabe eines Strings, also einer Zeichenfolge mit dem Inhalt „Robert“, kennt die Variable ihren Datentyp.
In diesem Fall bekommt die Variable ihren Datentyp „String“ also über die Typinferenz.
Um diese Variable nun ganz einfach im nächsten Schritt zu ändern, machen wir praktisch das Gleiche nochmal.
Nur dieses Mal verwenden wir nicht das „Dim“-Schlüsselwort, da diese Variable in der nächsten Zeile bereits „bekannt“ ist.
Durch die Bezeichnung der Variable (vorname), können wir Diese nun ganz einfach ansprechen.
Dann führen wir einfach eine erneute Zuweisung eines Wertes durch.
Dim vorname = "Robert" vorname = "Max"
Auf den richtigen Typ kommt’s an
Hierbei gilt es natürlich zu beachten, dass die Variable einen zum Deklarationstyp passenden Wert bekommt.
Ich könnte natürlich jetzt nicht hingehen und einer „String„-Variable plötzlich eine Zahl zuweisen.
Es würde verständlicherweise einen Fehler in unserer Programmierumgebung anzeigen.
Das gleiche Problem hätten wir auch bei einem eigens erstellten Datentyps wie einem „Kunden“.
Auch dazu werden wir später im Kapitel „Klassen“ noch einiges lernen!
Fazit
Am Ende des ersten VB NET Tutorials angekommen, ist es Zeit für ein kleines Fazit:
Variablen dienen uns in der Programmierung also als eine Art Zwischenspeicher für Werte.
Mit diesen Werten können wir dann in verschiedenen Situationen (namentlich angesprochen) arbeiten.
Der Wert hinter den Variablen kann zur Laufzeit des Programms dynamisch geändert werden.
Variablen werden üblicherweise mit einem gewissen Datentyp definiert, damit „man“ weiß, womit man arbeitet.
Deshalb muss man auch bei der nachträglichen Änderung des Wertes auf den Datentyp achten.
In späteren Tutorials werden wir uns natürlich auch mit dynamischen Datentypen beschäftigen.
Man weiß nicht unbedingt in jedem Moment den exakten Datentyp, daher muss oft auch ein wenig Flexibilität her.
Es gibt 3 gängige Arten Variablen zu definieren:
- Deklaration = Ankündigung mit Datentyp
- Initialisierung = Ankündigung mit Datentyp & Wertzuweisung
- Init. durch Typinferenz = Ankündigung ohne expliziten Datentyp, jedoch via Inferenz
Im nächsten Tutorial
Das nächste Tutorial wird ein zweiter Beitrag zum Thema Variablen sein.
Dort werde ich noch mehr auf die unterschiedlichen Typen, deren Verwendung und weitere Tipps eingehen.
Ebenso konnten wir bisher nicht wirklich viel von den Variablen sehen, da Sie mehr oder weniger „geschluckt“ wurden.
Daher werde ich zeigen, wie man die Variablen dann wirklich visuell darstellen, also „ausgeben“ kann.
Dadurch werden Sie für den Endnutzer und letztendlich uns sichtbar, wenn auch erstmal nicht schön.
Das haben sogenannte Konsolenanwendungen aber so an sich, gell!?