Grundlagen Teil 1 - Ganzzahlen

Im letzten Abschnitt haben wir uns mit dem Variablentyp string beschäftigt.
Jedoch ist offensichtlich, dass es hier noch einige andere Typen von Variablen geben muss. In diesem Abschnitt widmen wir uns den int Variablen. Der Name int kommt von Integer, was auf Deutsch nichts anders als Ganzzahl bedeutet.

Die int Variable

Definieren (Festlegen) einer int Variable erfolgt identisch dem einer string Variable und funktioniert mit folgendem Code:

int variablenName;

Der Name einer int Variabel befolgt die gleichen Regeln, wie die einer string Variable.
Nochmal zur Erinnerung:

Jedoch gibt es einen Unterschied zum Speichern eines Wertes in einer int Variable.
Dies erfolgt zwar wie bei der string Variabel mit einem = Zeichen, jedoch wird hier der zugewiesene Wert nicht in Anführungsstrichen geschrieben.
Als Programmcode sieht dies folgendermaßen aus:

int variablenName = 123;

Ein Detail, dass im vorherigen Abschnitt nicht erwähnt wurde, ist dass es nur beim Definieren (Festlegen) einer Variable notwendig ist int/string vor dem Variablennamen zu schreiben. Daher ist es möglich in einer Zeile eine Variable zu definieren (festzulegen) und ihr in der nächsten Zeile einen Wert zu geben ohne das anschreiben von int/string.
Des Weiteren ist der Wert einer Variable veränderbar und kann wieder überschrieben werden.
Als Programmcode würde dies folgendermaßen aussehen:

int variablenName;
variablenName = 123;

int Variablen in der Konsole ausgeben

Dies erfolgt einfacher als man es sich vielleicht denken möge.
Hierzu kommt wieder die Console.WriteLine() Methode zum Einsatz.
Im letzten Abschnitt hatten wir diese Methode dazu genutzt einen string auszugeben.
Identisch funktioniert dies mit int Variablen. Mit anderen Worten ausgedrückt, Console.WriteLine() kann nicht nur Variablen vom Typ string ausgeben, sondern auch Variablen vom Typ int.
Hier zwei Programmcodeausschnitte, welche das gleiche Ergebnis liefern würden:

int variablenName = 123;
Console.WriteLine(variablenName);

Console.WriteLine(123);

Nun gut, wir sind dazu imstande int Variablen (Ganzzahlen) auszugeben, jedoch wäre es doch von Vorteil wenn es die Möglichkeit gebe, auch int Variablen (Ganzzahlen) wie string Variablen aus der Konsole einzulesen.
Wir erinnern uns an Console.ReadLine(), diese Methode gibt uns die Eingabe als Text zurück, dies ist allerdings nicht kompatibel mit int Variablen. Hierfür stellt C# eine Befehl zur Verfügung, welcher dieses Problem löst. Dafür ist es allerdings notwendig eine weitere Klasse einzuführen.

Die Convert Klasse

In vorherigen Abschnitt hatten wir eine kurze Beschreibung zum Thema Klassen.
Dabei hatten wir Klassen als Schublade mit mehreren Fächern beschrieben. In diesem Fall handelt es sich um die Klasse (Schublade) Convert. Wie der Name der Klasse (Schublade) auf Deutsch übersetzt schon sagt, handelt es sich dabei um eine Klasse (Schublade), welche uns Methoden (Fächer/Funktionen) zum Konvertieren / Umwandeln zur Verfügung stellt.

Wir picken uns jetzt eine Methode heraus, die unseren Zweck erfüllt:

Convert.ToInt32(Text);

Offensichtlich dient diese Methode, dem Umwandeln von Text (Stringvariablen) in int Variablen, dies lässt sich bereits einfach anhand des Namens der Methode erkennen.
Der Name setzt sich aus folgenden Teilen zusammen, "To" auf deutsch zu/auf, "Int" was den Zielvariablentyp angibt (aus Gründen der Lesbarkeit groß geschrieben beginnt) und 32, was mit dem Speicherplatz zusammenhängt, momentan aber nicht von belangen ist.
Dieses Muster wird uns im späteren Verlauf immer wieder verfolgen und ist mit Englisch Grundkenntnissen einfach verständlich.

Die Verwendung dieser Methode ist recht simpel.
Man stellt sich diese Methode einfach wie die Methode Console.WriteLine(Text) vor, nur anstatt, dass der Text an die Konsole weitergegeben wird, gibt diese Methode, den konvertierten Text an eine Variable weiter.
Im Quellcode repräsentiert diese Methode, also eine int Variable. Hingegen dazu, repräsentiert die Console.ReadLine() Methode eine string Variable. Kombiniert man diese Eigenschaften, lässt sich damit eine Ganzzahl einlesen.
Nun konstruieren wir uns ein Beispiel, um die Funktionsweise besser zu verstehen.

Beispiel: int Variablen einlesen und ausgeben

In diesem Abschnitt haben wir alles nötige theoretisch behandelt.
Nun programmieren wir ein Programm, welches es uns ermöglicht eine Zahl einzugeben und danach wieder auszugeben.

Ablauf eines solchen Programms:

Als vollständiges Programm sieht dieses Beispiel folgendermaßen aus:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  string eingeleseneZeile = Console.ReadLine();
                  int gewandelteZeile;
                  gewandelteZeile = Convert.ToInt32(eingeleseneZeile);
                  Console.WriteLine(gewandelteZeile);
                  Console.ReadLine();
            }
      }
}

Wenn wir das Programm jetzt ausführen (mit F5 oder dem grünen Pfeil), läuft das Programm folgendermaßen ab und sollte aussehen wie auf dem Bild, bei einer Eingabe von 123 gefolgt von einem Enter:

Ganzzahl

Es ist offensichtlich, dass für dieses Beispiel keine int Variable (Ganzzahlen) notwendig ist, jedoch erklärt es einfach einige Zusammenhänge.
Natürlich könnte man wieder einige Zeilen zusammenfassen, als Beispielen fassen wir folgende drei Zeilen zu einer zusammen:

string eingeleseneZeile = Console.ReadLine();
int gewandelteZeile;
gewandelteZeile = Convert.ToInt32(eingeleseneZeile);

Zusammengefasst ergibt das folgendes:

int gewandelteZeile = Convert.ToInt32(Console.ReadLine());

Übungsbeispiel

Um das gelernte zu vertiefen ein einfaches Beispiel.

Angabe

Für die Lösung hier klicken. Bei Fragen und Problemen, bitte das Forum benutzen.

Lösung:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  int zahl1 = Convert.ToInt32(Console.ReadLine());
                  int zahl2 = Convert.ToInt32(Console.ReadLine());
                  Console.WriteLine("Jetzt erfolgt die Ausgabe der Variablen");
                  Console.WriteLine(zahl2);
                  Console.WriteLine(zahl1);
                  Console.ReadLine();
            }
      }
}

Mögliche Fehler

Wieder betrachten wir das Verhalten von Visual C# bei einem typischen Fehler.
Als Beispiel wählen wir diesmal das Verhalten, wenn man versucht eine int Variable einen string abzuspeichern (nicht während das Programm ausgeführt wird).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Projekt1
{
      class Program
      {
            static void Main(string[] args)
            {
                  int testVariable = "Testtext";
                  Console.ReadLine();
            }
      }
}

Jetzt bekommen wir folgende Fehlermeldung in der Fehlerliste angezeigt:(je nach Formatierung kann die Zeile / Spalte variieren)

Beschreibung Datei Zeile Spalte Projekt
Eine implizite Konvertierung vom Typ "string" in "int" ist nicht möglich. Program.cs 12 32 Projekt1

Diese Fehlermeldung bedeutet nichts anderes, als dass Visual C# den Text nicht automatisch in eine Ganzzahl umwandeln kann. Bei diesem Beispiel würde auch die Convert.ToInt32(Text) Methode kein Ergebnis liefern, da sich "Testtext" nicht in eine Zahl umwandeln lässt.