C# Deklarieren und Initialisieren einer Variable


  • Share on Google+

Um mit einer Variable rechnen, oder beispielsweise ausgeben zu können, muss diese vorher deklariert und initialisiert werden. Hier eine Erklärung, wie dies in C# gemacht wird.

Deklarierung und Initialisierung

Möchten wir eine Variable verwenden die zum Beispiel einen Namen enthält, wird eine Variable vom Typ string benötigt.

string name;

Das Wort “string” beschreibt dabei einen Datentyp und “name” ist der von uns frei wählbare Variablenname. An dieser Stelle wird dem Programm die Variable bekannt gemacht, wir können also theoretisch mit der Variable arbeiten.

Wird der Code kompiliert, würde man später die hier deklarierte Variable allerdings nicht sehen. Außerdem können wir noch keine Methoden auf der Variable ausführen. Der Grund dafür ist, dass “name” noch nicht initialisiert wurde.

Eine Variable vom Typ string wird anschließend wie folgt initialisiert:

name="Peter";

In diesem Schritt wird nun Speicher allokiert und der Wert “Peter” gespeichert.

Die Variablen Deklarierung und Initialisierung muss nicht immer in zwei Zeilen geschrieben werden, sondern können auch kurz gefasst in einer Zeile geschrieben werden:

string name = "Peter";

Die Lösung in einer Zeile wird oft in Methoden verwendet um lokale Variablen zu initialisieren und deklarieren. Die zwei Zeilen Lösung hingegen nutzt man öfter um in Klassen Variablen zuerst bekannt zu machen, also zu deklarieren und sie dann im Konstruktor oder anderen Application Life-Cycle-Events zu initialisieren oder bereits initialisierte Variablen neue Werte zuzuweisen.

Deklarierung und Initialisierung mit primitiven Typen

Primitive Typen wie int, char und double (liste nicht komplett) werden per Konvention direkt bei ihrer Deklarierung initialisiert. Beispiel:

int alter;

Auch wenn hier nicht explizit ein Wert zugewiesen wurde, hält die Variable den Standardwert 0. Somit kann mit der deklarierten und intern initialisierten Variable sofort z.B. gerechnet werden. Microsoft hat dazu eine Liste der Initialwerte von primitiven Typen veröffentlicht.

Zusammengesetzte Datentypen und Zeigertypen

Datentypen wie z.B. Arrays benötigen hinter dem Gleichheitszeichen noch den Allokationsoperator. Die Deklarierung einer Variable bzw. hier speziell eines Objektes kann wie gewohnt durchgeführt werden.

Auto auto;

Bei der Initialisierung muss jedoch vom Allokationsoperator new gebrauch gemacht werden.
Der Allokationsoperator weist einem Objekt spezifisch seinen Speicherplatz zu. Eine Variable hält so intern nicht den tatsächlichen Wert eines Objektes, sondern referenziert nur noch auf dessen Speicher. Beim Programmieren merkt man dies spätestens bei der Übergabe und Nutzung von Objekten (call by value, call by reference). Beispiel:

Auto auto = new Auto();

Neu dabei ist auch der Aufruf des default Konstruktors “Auto()”. Jedes Objekt hat mindestens einen Konstruktor der bei der Initialisierung eines Objektes aufgerufen wird. Im Konstruktor können so z.B. Klassenattribute initialisiert oder andere Methoden aufgerufen werden. Ist kein Konstruktor in der Klasse implementiert, wird der default-Konstruktor benutzt. Da es hier jedoch erstmal nur um die Deklarierung und Initialisierung von Variablen gehen soll, gehe ich hier nicht weiter drauf ein.

Initialisierung der Variable per Benutzerschnittstelle

Da es oft eine Aufgabe ist eine Variable per Benutzereingabe auf der Konsole zu initialisieren, hier ein Codebeispiel:

string wort; //Deklarierung der Variable

wort = Console.ReadLine(); //Initialisierung der Variable durch den Benutzer.

Ist die Variable allerdings beispielsweise vom Dateityp int, so muss diese vorher noch konvertiert werden.

int zahl; //Initialisierung der Variable
zahl = Convert.ToInt32(Console.ReadLine()); //Initialisierung sowie Konvertierung der Variable.

Im letzten Schritt wird zuerst die Eingabe des Benutzers in Integer konvertiert und anschließend der Variable zahl zugewiesen.

Nach dem gleichen Schema werden auch Variablen anderen Datentyps wie Double/Character/Float… zugewiesen. Bei der “direkten Deklarierung”, also direkt nach der Initialisierung muss darauf geachtet werden, wie die Werte angegeben werden.

Weitere Beispiele

string:

string wort = "Blubb";

char:

char buchstabe = 'b';

int:

 int zahl = 123; //Gleiches Schema für Double.

 


Dieser Artikel ist die aktualisierte Version von 2009 (Stand Januar 2018). Da ich damals selbst als Schüler C# lernen musste und gerade Anfängern das Verständnis des Unterschieds der Deklarierung und Initialisierung von Variablen nicht klar ist, dieses Wissen jedoch in der Programmierung fundamental ist, habe ich mich entschlossen dies in einem Artikel fest zu halten.

Dieser Artikel ist bewusst einfach gehalten und geht keines Wegs in die Tiefe. Sollten dir fachlichte Unkorrektheiten auffallen, schreib doch einfach einen kurzen Kommentar.

Header-Bild von NASA, Big Bang und damit die Initialisierung des Weltalls.