C# Keywords

Domains: C#

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.

abstract as base bool  
break byte case 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 int interface internal  
is lock long namespace  
new null object operator  
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 using static virtual void  
volatile while      

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 by
descending dynamic equals
from get global
group into join
let nameof on
orderby partial (type) partial (method)
remove select set
value var when (filter condition)
where (generic type constraint) where (query clause) yield

Similar pages

Page structure