💡 1. C# 12 Primary Constructors & Properties
Klassen definieren in C# 12 ihre Konstruktorparameter direkt in der Klassensignatur. Das spart endlose Zuweisungszeilen:
// Primary Constructor in C# 12:
public class BankAccount(string iban, decimal initialBalance = 0m) {
public string Iban { get; } = iban;
public decimal Balance { get; private set; } = initialBalance;
public DateTime CreatedAt { get; init; } = DateTime.UtcNow;
public void Deposit(decimal amount) {
if (amount <= 0) throw new ArgumentException("Betrag muss positiv sein");
Balance += amount;
}
}
// Instanziierung:
var konto = new BankAccount("DE123456789", 1000m) {
CreatedAt = DateTime.UtcNow
};
Früher musste man für jede Tür und jedes Fenster ein separates Formular ausfüllen. Mit Primary Constructors lieferst du die Maße direkt bei der Bestellung an und das Gebäude steht sofort!
⚡ 2. Quick-Cheat-Sheet
| Property Accessor | Lesen | Schreiben | Einsatzzweck |
|---|---|---|---|
{ get; set; } | Öffentlich | Jederzeit öffentlich | Voll veränderbare Eigenschaft |
{ get; private set; } | Öffentlich | Nur innerhalb der Klasse | Gekapselter Zustand |
{ get; init; } | Öffentlich | Nur bei Objekt-Erstellung | Unveränderlich nach Initialisierung |
{ get; } | Öffentlich | Nur im Konstruktor | Strikte Read-Only-Property |
⚠️ 3. Häufige Stolperfallen (Gotchas & Anti-Patterns)
Versucht man nach der Konstruktion konto.CreatedAt = neu; zu schreiben, meldet der Compiler sofort einen Fehler.
Die Parameter eines Primary Constructors bei Klassen sind nicht automatisch schreibgeschützt, sondern verhalten sich wie mutable Felder!
🧠 4. Diagnostischer Selbst-Check
Überprüfe dein Verständnis von Sprach-Features, Speicherverwaltung und Enterprise-Architektur, bevor du den Code in der Web-IDE schreibst.