Wird geladen...

Grundlegende Datentypen in C#

Grundlegende Datentypen in C#: numerisch, textbasiert, logisch, objektorientiert und nullable.

In C# werden Daten in unterschiedlichen Datentypen gespeichert, die festlegen, wie viel Speicher verwendet wird und welche Operationen möglich sind. Diese Datentypen beeinflussen das Verhalten eines Programms maßgeblich. In diesem Artikel betrachten wir numerische, textuelle, logische, dynamische und nullable Datentypen anhand von Beispielen.

Die bewusste Wahl des richtigen Datentyps ist ein zentraler Bestandteil des C#-Lernprozesses. Eine korrekte Typverwendung verbessert die Performance, optimiert die Speichernutzung und reduziert die Fehleranfälligkeit. Ein solides Verständnis der grundlegenden Datentypen bildet daher die Basis für stabile und wartbare Anwendungen.


Numerische Typen

Numerische Typen werden für Ganzzahlen und Gleitkommazahlen verwendet. Für Finanzberechnungen empfiehlt man decimal.

TypBeschreibungBeispielSpeicher
intGanzzahl (−2 Mrd - +2 Mrd)424 Byte
longGrößere Ganzzahlen1000000008 Byte
shortKleinere Ganzzahlen1202 Byte
byte0 - 255 positiv2001 Byte
doubleGleitkomma (doppelte Präzision)3.148 Byte
floatGleitkomma (einfache Präzision)2.5f4 Byte
decimalDezimal für Finanzen19.99m16 Byte

int alter = 25;
double pi = 3.14159;
decimal preis = 19.99m;

Console.WriteLine(alter);
Console.WriteLine(pi);
Console.WriteLine(preis);

Hinweis: Bei finanziellen Berechnungen sollte decimal anstelle von double verwendet werden, da es Rundungsfehler bei Gleitkommazahlen vermeidet und eine höhere Genauigkeit bietet.


Texttypen

char speichert ein einzelnes Zeichen, string eine Zeichenkette.


char ersterBuchstabe = 'M';
string nachricht = "Hallo";

Console.WriteLine(ersterBuchstabe);
Console.WriteLine(nachricht);

Logischer Typ

bool kann nur true oder false enthalten. Häufig in Bedingungen verwendet.


bool istStudent = true;
bool istAbsolvent = false;

Console.WriteLine(istStudent);
Console.WriteLine(istAbsolvent);

Objekt- und dynamische Typen

object, var und dynamic erlauben flexible Nutzung.


object daten = 42;
var text = "Hallo";
dynamic variable = 5;
variable = "Jetzt ein String";

Console.WriteLine(daten);
Console.WriteLine(text);
Console.WriteLine(variable);

Nullable Typen

Werttypen (int, double, bool) können standardmäßig nicht null sein. Mit ? werden sie nullable.


int? note = null;

if (note == null)
    Console.WriteLine("Keine Note eingetragen.");
else
    Console.WriteLine($"Note: {note}");

Welcher Datentyp Wann Verwendet Werden Sollte


Zuweisungen zwischen Datentypen und Typumwandlungen

In C# können Variablen unterschiedlicher Datentypen nicht immer direkt einander zugewiesen werden. Bei inkompatiblen Typen tritt ein Kompilierungsfehler auf.

Fehlerhafte Zuweisungen


int zahl = 10;
string text = zahl; // FEHLER

bool status = true;
int wert = status;  // FEHLER

In diesen Beispielen schlägt die Zuweisung fehl, da die Datentypen nicht miteinander kompatibel sind.

C# Typumwandlungsfehler in Visual Studio

Im obigen Bild erkennt Visual Studio sofort ungültige Zuweisungen zwischen inkompatiblen Datentypen. Im Beispiel wird versucht, Werte zwischen nicht kompatiblen Typen wie bool und int direkt zuzuweisen. Der Editor markiert dies mit einer roten Wellenlinie und zeigt einen Kompilierungsfehler wie CS0029 an.

Implizite Umwandlungen


int klein = 5;
double gross = klein; // Gültig

Numerische Typen mit kleinerem Wertebereich können automatisch in größere Typen umgewandelt werden.

Explizite Umwandlungen


double pi = 3.14;
int ganzeZahl = (int)pi; // 3

Umwandlungen mit möglichem Daten- oder Genauigkeitsverlust erfordern eine explizite Typumwandlung.


Zusammenfassung