Schlüsselwörter sind Zeichenmarken, die die Syntax der C#-Sprache definieren.
Bei Schlüsselwörtern handelt es sich um eingebaute Begriffe von C# mit jeweils einer festen Sonderfunktion. Deshalb dürfen Sie diese Wörter beim Programmieren nicht als Variablennamen, Funktionsnamen oder andere Bezeichner verwenden – sonst entstehen mehrdeutige Anweisungen, die der Compiler nicht verarbeiten kann. Ein Beispiel: int steht in C# für den Ganzzahltyp. Wenn Sie versuchen, bool int = 12; zu schreiben, scheitert die Kompilierung, weil int als reserviertes Wort für eine spezielle Spracheigenschaft vorgesehen ist.
Für Schlüsselwörter gelten zwei zentrale Regeln
Schlüsselwörter dürfen nicht direkt als Variablennamen oder andere Bezeichner genutzt werden; die einzige Ausnahme besteht darin, dem Schlüsselwort das Zeichen @ voranzustellen. Alle standardmäßigen C#-Schlüsselwörter bestehen ausschließlich aus Kleinbuchstaben, wohingegen die integrierten .NET-Typbezeichnungen nach der PascalCase-Schreibweise benannt werden.
| abstract | const | extern | int | override | sizeof | typeof | |
| as | continue | false | interface | params | stackalloc | uint | |
| base | decimal | finally | internal | private | static | ulong | |
| bool | default | fixed | is | protected | string | unchecked | |
| break | delegate | float | lock | public | struct | unsafe | |
| byte | do | for | long | readonly | switch | ushort | |
| case | double | foreach | namespace | ref | this | using | |
| catch | else | goto | new | return | throw | virtual | |
| char | enum | if | null | sbyte | true | void | |
| checked | event | implicit | object | sealed | try | volatile | |
| class | explicit | in | operator | when | while |
Global reservierte Begriffe, in keinem Kontext direkt als Name nutzbar, das Präfix @ ist zwingend erforderlich
int @int; // Gültige Syntax
int int; // Löst einen Kompilierungsfehler ausCode-Sprache: JavaScript (javascript)
Kontextbezogene Schlüsselwörter
Kontextbezogene Schlüsselwörter (Contextual Keywords)
Kontextbezogene Schlüsselwörter wirken nur innerhalb bestimmter Syntaxstrukturen als reservierte Wörter. Im Gegensatz zu normalen Schlüsselwörtern können sie an anderen Stellen im Quellcode frei als Bezeichner verwendet werden.
| add | ascending | async | await | by | descending | dynamic |
| equals | from | get | global | group | in | into |
| join | let | on | orderby | partial | remove | select |
| set | value | var | where | yield |
Nur in festgelegten Syntaxblöcken als Schlüsselwort aktiv, ansonsten direkt als Variablenname einsetzbar
int var; // Erlaubt, var ist außerhalb der Typableitung kein Schlüsselwort
var num = 10; // Hier fungiert var als Schlüsselwort für die implizite TypableitungCode-Sprache: JavaScript (javascript)

Alle eingekreisten Begriffe aus dem vorherigen Beispiel zählen zu den Schlüsselwörtern.