Keywords in C#

Keywords or reserved words in C# programming are language-specific words that have special meanings. You cannot use them for names of variables or functions.

Keywords are predefined, reserved identifiers that have special meanings to the compiler. They cannot be used as identifiers in your program unless they include @ as a prefix. For example, @if is a valid identifier but if is not because if is a keyword.
The first table in this topic lists keywords that are reserved identifiers in any part of a C# program. The second table in this topic lists the contextual keywords in C#. Contextual keywords have special meaning only in a limited program context and can be used as identifiers outside that context.
Generally, as new keywords are added to the C# language, they are added as contextual keywords in order to avoid breaking programs written in earlier versions.

Keywords

abstract as base bool break
byte case volatile while void
catch char checked class const
continue decimal default delegate do
double else enum event explicit
extern false finally fixed float
for foreach goto if implicit
in in int interface internal
is lock long namespace new
null object operator out out
override params private protected public
readonly ref return sbyte sealed
short sizeof stackalloc static string
struct switch this throw true
try typeof uint ulong unchecked
unsafe ushort using virtual
aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa aaaaaaaa

Contextual Keywords

A contextual keyword is used to provide a specific meaning in the code, but it is not a reserved word in C#. Some contextual keywords, such as partial and where, have special meanings in two or more contexts.

add alias ascending async await
descending dynamic from get global
group into join let orderby
partial partial remove select set
value var where where yield