Wie werden Daten im Speicher verwaltet?
int ist nur ein Alias (Kurzform) für System.Int32
Und System.Int32 ist definiert als:
💡 Das bedeutet:
✓ int, bool, double etc. sind alle structs
✓ Sie sind im System-Namespace definiert
✓ C# Keywords wie int sind nur Aliase (Kurzformen)
✓ int x = 10; ist das Gleiche wie System.Int32 x = 10;
✓ Alle sind Value Types → Stack-Speicherung
LIFO (Last In, First Out)
Was wird gespeichert?
Dynamischer Speicher
Was wird gespeichert?
💡 Wichtig:
int x wird direkt auf dem Stack gespeichert.
string name und Person p speichern nur die Adresse (Referenz) auf dem Stack, das eigentliche Objekt liegt im Heap!
| byte | 0 bis 255 |
| sbyte | -128 bis 127 |
| short | ±32K |
| ushort | 0 bis 65K |
| int | ±2.1 Mrd |
| uint | 0 bis 4.3 Mrd |
| long | ±9 Trillionen |
| ulong | 0 bis 18 Trill. |
| float | 7 Stellen |
| double | 15-16 Stellen |
| decimal | 28-29 Stellen |
decimal für Geld verwenden! Genauer bei Finanzen.
| bool | true/false |
| char | 1 Zeichen |
| DateTime | Datum/Zeit |
| enum | Aufzählung |
| struct | Eigene! |
In C# sind die bekannten Typen nur Aliase für System-Typen:
int = System.Int32
bool = System.Boolean
string = System.String
decimal = System.Decimal
⚠️ Besonderheit: string
string ist ein Reference Type (liegt im Heap), verhält sich aber wie ein Value Type (immutable = unveränderlich)!
structreadonly struct für ImmutabilityWo wird int x = 42; gespeichert?