Jeder kann coden / Programmieren & TicTacToe / C# Einführung
Das Konzept einer Variablen¶
![]() |
![]() |
Link zur Microsoft Dokumentation Link zum roten Faden auf Miro Link zu Tutorial auf w3schools |
Eine Variable in C# ist ein benannter Speicherort im Arbeitsspeicher eines Programms, der dazu verwendet wird, Daten zu speichern und darauf zuzugreifen. Variablen ermöglichen es, Werte vorübergehend zu speichern, um sie im weiteren Verlauf des Programms zu verwenden. Sie sind ein fundamentales Konzept in der Programmierung, da sie es erlauben, mit Daten flexibel und dynamisch zu arbeiten.
Aufbau einer Variable¶
Deklaration: Um eine Variable in C# zu verwenden, muss sie zuerst deklariert werden. Bei der Deklaration einer Variablen wird der Typ festgelegt, der angibt, welche Art von Daten die Variable speichern kann. Der Variablenname muss eindeutig sein und den Namenskonventionen von C# folgen.
- Beispiel:
int age;
Hier wird eine Variable namensage
deklariert, die einen Ganzzahlwert speichern kann.
- Beispiel:
Initialisierung: Nach der Deklaration kann der Variablen ein Wert zugewiesen werden. Dies kann entweder direkt bei der Deklaration oder zu einem späteren Zeitpunkt im Code geschehen.
- Beispiel:
int age = 25;
Hier wird der Variablenage
direkt ein Wert zugewiesen.
- Beispiel:
Zugriff und Modifikation: Nachdem eine Variable deklariert und initialisiert wurde, kann auf ihren Wert zugegriffen und dieser bei Bedarf geändert werden.
- Beispiel:
age = 30;
Hier wird der Wert vonage
auf 30 geändert.
- Beispiel:
int age;
Console.WriteLine(age);
string name;
Console.WriteLine($">{name}<");
0 ><
Typen von Variablen¶
In C# sind Variablen stark typisiert, was bedeutet, dass der Typ einer Variablen zur Zeit der Deklaration festgelegt wird und sich nicht mehr ändern kann. Die wichtigsten Typen von Variablen sind:
- Primitive Datentypen: Diese umfassen einfache Datentypen wie Ganzzahlen (
int
), Gleitkommazahlen (float
,double
), Zeichen (char
) und Wahrheitswerte (bool
). - Referenztypen: Zu den Referenztypen gehören komplexere Datentypen wie Klassen, Arrays, Strings und Objekte. Im Gegensatz zu primitiven Datentypen speichern Referenztypen einen Verweis (Referenz) auf den tatsächlichen Speicherort der Daten, nicht die Daten selbst.
bool test;
Console.WriteLine(test);
False
Lebensdauer und Sichtbarkeit¶
Der Gültigkeitsbereich (Scope) einer Variablen bestimmt, wo im Code auf sie zugegriffen werden kann. Variablen können lokal (innerhalb einer Methode) oder global (z.B. als Klassenfelder) deklariert werden.
- Lokale Variablen: Diese existieren nur innerhalb der Methode oder des Blocks, in dem sie deklariert wurden. Nach Verlassen des Blocks wird der Speicher, der der Variablen zugewiesen wurde, freigegeben.
- Beispiel:
void MyMethod() { int x = 5; }
- Beispiel:
- Globale bzw. Klassenvariablen: Diese werden in der Klasse selbst deklariert und sind für alle Methoden dieser Klasse zugänglich, solange sie im entsprechenden Gültigkeitsbereich liegen.
- Beispiel:
class MyClass { int y; }
- Beispiel:
Wichtige Konzepte im Zusammenhang mit Variablen¶
Konstanten: In C# gibt es auch die Möglichkeit, Variablen als konstant zu deklarieren. Diese Variablen können nach ihrer Initialisierung nicht mehr verändert werden. Das Schlüsselwort dafür ist
const
.- Beispiel:
const int MAX_AGE = 100;
- Beispiel:
Nullable-Typen: Normalerweise kann eine Variable eines Wertetyps (z.B.
int
) keinennull
-Wert enthalten. C# bietet jedoch sogenannte Nullable-Typen, die es ermöglichen, dass Wertetypennull
sein können.- Beispiel:
string? nullableString = null;
- Beispiel:
Automatisch implementierte Eigenschaften: In modernen C#-Versionen gibt es zudem die Möglichkeit, Variablen mit dem Schlüsselwort
var
automatisch den Typ zuzuweisen, basierend auf dem initial zugewiesenen Wert. Dies nennt man Typinferenz.- Beispiel:
var name = "John";
Der Compiler leitet automatisch ab, dassname
vom Typstring
ist.
- Beispiel:
Speicherverwaltung: Für den Umgang mit Variablen ist es wichtig zu verstehen, dass C# über eine automatische Speicherverwaltung verfügt, die durch den Garbage Collector gesteuert wird. Dieser sorgt dafür, dass nicht mehr benötigter Speicher automatisch freigegeben wird.
Beispiel:¶
int number = 10;
string name = "John";
double price = 9.99;
int
ist ein Datentyp für ganze Zahlen.string
speichert eine Zeichenkette.double
ist ein Datentyp für Gleitkommazahlen.
Datentypen: int
, float
, und double
¶
int
¶
Der int
-Typ speichert ganze Zahlen (ohne Dezimalstellen). Er ist 32 Bit breit und kann Werte im Bereich von -2.147.483.648 bis 2.147.483.647 speichern.
float
¶
Der float
-Typ speichert Gleitkommazahlen (Zahlen mit Dezimalstellen). Er ist 32 Bit breit und eignet sich für die Speicherung von Werten mit weniger Genauigkeit, aber größerem Bereich. Ein float
-Wert benötigt das Suffix f
:
float pi = 3.14f;
double
¶
Der double
-Typ ist ein 64-Bit-Gleitkommatyp und bietet eine höhere Genauigkeit und einen größeren Bereich als float
. Dies ist der am häufigsten verwendete Typ für Gleitkommazahlen:
double precisePi = 3.14159265358979;
var number = 42; // number wird als int deklariert
var text = "Mein Text";
Echte Literale¶
C# unterstützt verschiedene Zahlensysteme wie Dezimal, Hexadezimal und Binär:
int decimalNumber = 42;
int hexNumber = 0x2A; // 42 in Hexadezimal
int binaryNumber = 0b101010; // 42 in Binär
Typen casting¶
Casting ermöglicht die Umwandlung eines Datentyps in einen anderen. Dies kann explizit oder implizit geschehen:
int number = 42;
double castedNumber = (double)number; // Explizites Casting