Las palabras clave son marcadores de caracteres que definen la sintaxis del lenguaje C#.
Las palabras clave son términos incorporados de forma nativa en C# con funciones especiales. Por eso, no puedes emplearlas para crear nombres de variables, funciones ni otros identificadores al escribir código, ya que su uso directo generará ambigüedad. Por ejemplo, int hace referencia al tipo entero en C#. Si declaras una variable con ese nombre como bool int = 12;, el compilador no podrá interpretar el código, puesto que int es una palabra reservada con una utilidad exclusiva.
Existen dos reglas fundamentales para las palabras clave
Las palabras clave no pueden utilizarse directamente como nombres de variables ni otros identificadores, la única excepción es anteponer el prefijo @. Todas las palabras clave estándar de C# se escriben en minúsculas; mientras que los nombres de tipos integrados de .NET siguen la nomenclatura PascalCase.
| 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 |
Son reservadas globalmente, no se pueden usar directamente como nombres en ningún contexto, es obligatorio añadir el símbolo @
int @int; // Código válido
int int; // Provoca error de compilaciónLenguaje del código: JavaScript (javascript)
Palabras clave contextuales
Palabras clave contextuales (Contextual Keywords)
Las palabras clave contextuales solo adquieren la condición de palabra reservada dentro de estructuras sintácticas específicas. A diferencia de las palabras clave comunes, se pueden usar directamente como identificadores en el resto del código.
| 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 |
Solo funcionan como palabras reservadas en sintaxis concretas; en otras partes se pueden poner directamente como nombres de variables
int var; // Válido, var no actúa como palabra clave fuera de la deducción de tipos
var num = 10; // Aquí var es una palabra clave para inferir tipos implícitamenteLenguaje del código: JavaScript (javascript)

Todos los términos marcados en el ejemplo anterior son palabras clave.