Der wichtigste Unterschied: Value Type vs Reference Type
💡 Ergebnis:
struct: p1.X bleibt 10, weil p2 eine KOPIE ist
class: person1.Age wird auch 999, weil person2 auf dasselbe Objekt zeigt
💡 Ergebnis:
struct: original.X bleibt 5 (Methode bekommt Kopie)
class: original.Age wird 9999 (Methode bekommt Referenz)
💡 Ergebnis:
Mit ref kann auch ein struct per Referenz übergeben werden. Dann wird das Original verändert!
| Eigenschaft | struct | class |
|---|---|---|
| Typ | Value Type | Reference Type |
| Speicher | Stack | Heap |
| Zuweisung | Wert wird kopiert | Referenz wird kopiert |
| null möglich? | Nein (außer Nullable<T>) | Ja |
| Vererbung | Nicht möglich | Möglich |
| Standardkonstruktor | Immer vorhanden | Nur wenn nicht überschrieben |
| Performance | Schneller für kleine Daten | Besser für große Objekte |
| Typische Verwendung | Point, Color, DateTime, Koordinaten | Person, Auto, komplexe Objekte |