> ## Documentation Index
> Fetch the complete documentation index at: https://homelab.amylify.de/llms.txt
> Use this file to discover all available pages before exploring further.

# 4.2.9 Spickzettel

> C# auf einen Blick: CLI-Befehle, Tastenkürzel, Escape-Sequenzen, Schlüsselwörter und häufige Compilerfehler.

Zum schnellen Nachschlagen. Ausführliche Erklärungen stehen in den Kapiteln davor.

***

## dotnet CLI

| Befehl | Wirkung |
| :- | :- |
| `dotnet --version` | Zeigt die Version des aktiven SDKs |
| `dotnet --list-sdks` | Listet alle installierten SDKs |
| `dotnet new console -n Name` | Neues Konsolenprojekt |
| `dotnet new classlib -n Name` | Neue Klassenbibliothek |
| `dotnet new sln` | Neue Projektmappe (Solution) |
| `dotnet sln add Pfad.csproj` | Projekt zur Mappe hinzufügen |
| `dotnet run` | Kompilieren und starten |
| `dotnet run datei.cs` | Eine einzelne Datei ohne Projekt ausführen (.NET 10) |
| `dotnet build` | Nur kompilieren |
| `dotnet watch` | Bei jeder Dateiänderung neu starten |
| `dotnet add package Name` | NuGet-Paket hinzufügen |
| `dotnet clean` | Build-Ergebnisse löschen |

***

## Tastenkürzel

> [tab] Visual Studio
>
> | Kürzel | Wirkung |
> | :- | :- |
> | `F5` | Starten mit Debugger |
> | `Strg + F5` | Starten ohne Debugger |
> | `F9` | Haltepunkt setzen oder entfernen |
> | `F10` / `F11` | Schritt über / in eine Methode |
> | `Strg + K, Strg + D` | Dokument formatieren |
> | `Strg + K, Strg + C` | Auswahl auskommentieren |
> | `Strg + .` | Schnelle Korrekturen und Refactorings |
> | `F12` | Zur Definition springen |

> [tab] Visual Studio Code
>
> | Kürzel | Wirkung |
> | :- | :- |
> | `F5` | Debuggen starten |
> | `Strg + F5` | Ohne Debugger starten |
> | `F9` | Haltepunkt setzen oder entfernen |
> | `Umschalt + Alt + F` | Dokument formatieren |
> | `Strg + .` | Schnelle Korrekturen |
> | `F12` | Zur Definition springen |
> | `Strg + Umschalt + P` | Befehlspalette |

***

## Schlüsselwörter nach Thema

| Thema | Schlüsselwörter |
| :- | :- |
| Typen | `int` `long` `double` `float` `decimal` `bool` `char` `string` `object` `var` |
| Ablauf | `if` `else` `switch` `case` `default` `for` `foreach` `while` `do` `break` `continue` `return` |
| Klassen | `class` `struct` `record` `interface` `enum` `namespace` `new` `this` `base` |
| Zugriff | `public` `private` `protected` `internal` `static` `readonly` `const` |
| Vererbung | `virtual` `override` `abstract` `sealed` |
| Fehler | `try` `catch` `finally` `throw` |
| Sonstige | `using` `null` `is` `as` `ref` `out` `in` `params` `async` `await` |

***

## Escape-Sequenzen

| Zeichen | Bedeutung |
| :- | :- |
| `\n` | Neue Zeile |
| `\t` | Tabulator |
| `\"` | Anführungszeichen im Text |
| `\\` | Ein Backslash |
| `ä` | Unicode-Zeichen (hier: ä) |

***

## Formatierung

| Format | Beispiel | Ergebnis (deutsche Einstellung) |
| :- | :- | :- |
| `F2` | `$"{3.14159:F2}"` | `3,14` |
| `N0` | `$"{1234567:N0}"` | `1.234.567` |
| `C` | `$"{9.5:C}"` | `9,50 €` |
| `P0` | `$"{0.25:P0}"` | `25 %` |
| `D5` | `$"{42:D5}"` | `00042` |
| `,10` | `$"{42,10}"` | 42 rechtsbündig auf 10 Zeichen |
| `,-10` | `$"{42,-10}"` | 42 linksbündig auf 10 Zeichen |

***

## Häufige Compilerfehler

| Code | Meldung (sinngemäß) | Meist die Ursache |
| :- | :- | :- |
| `CS1002` | `;` erwartet | Semikolon vergessen |
| `CS1513` | `}` erwartet | Eine Klammer wurde nicht geschlossen |
| `CS0103` | Name existiert nicht im Kontext | Tippfehler oder Variable außerhalb ihres Blocks |
| `CS0246` | Typ oder Namespace nicht gefunden | `using` fehlt oder Name falsch geschrieben |
| `CS0029` | Kann Typ nicht implizit umwandeln | `int x = "text";`, es fehlt ein Cast oder `Parse` |
| `CS0165` | Nicht zugewiesene lokale Variable | Variable wurde vor dem ersten Wert verwendet |
| `CS0161` | Nicht alle Pfade geben einen Wert zurück | `return` fehlt in einem Zweig |
| `CS1061` | Typ enthält keine Definition für ... | Methode oder Property existiert nicht, Schreibweise prüfen |
| `CS8600` | Möglicher `null`-Wert wird zugewiesen | Nullable-Warnung, `?` oder Prüfung ergänzen |

> [!TIP]
>
> Die Codes lassen sich bei Microsoft direkt suchen: `CS0103` in die Suchmaschine eingeben, zusammen mit "C#". Die Doku erklärt jede Meldung mit Beispiel.

***

## Code-Stil in Kürze

> [card] Namen
>
> `PascalCase` für Typen und Methoden, `camelCase` für lokale Variablen und Parameter, `_camelCase` für private Felder.

> [card] Lesbarkeit
>
> Beschreibende Namen vor Abkürzungen. Pro Zeile eine Anweisung. Vier Leerzeichen Einrückung.

> [card] Kommentare
>
> Erkläre das **Warum**, nicht das Was. Gute Namen machen viele Kommentare überflüssig.

> [card] Methoden
>
> Kurz und mit nur einer Aufgabe. Verb im Namen, zum Beispiel `BerechneSumme`.

***

## Weiterführende Quellen

> [card] [C#-Dokumentation](https://learn.microsoft.com/de-de/dotnet/csharp/)
>
> Offizielle Doku von Microsoft mit Tutorials und Referenz.

> [card] [Sprachreferenz](https://learn.microsoft.com/de-de/dotnet/csharp/language-reference/)
>
> Jedes Schlüsselwort, jeder Operator, jede Syntax im Detail.

> [card] [Neuerungen in C# 14](https://learn.microsoft.com/de-de/dotnet/csharp/whats-new/csharp-14)
>
> Was die aktuelle Sprachversion Neues bringt.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.