C# LANGUAGE SPECIFICATION
Identifiers containing two consecutive underscore characters (U+005F) are reserved for use by the implementation. For example, an implementation might provide extended keywords that begin with two underscores.
A keyword is an identifier-like sequence of characters that is reserved, and cannot be used as an identifier except when prefaced by the @ character.
keyword: one of abstractasbaseboolbreak bytecasecatchcharchecked classconstcontinuedecimaldefault delegatedodoubleelseenum eventexplicitexternfalsefinally fixedfloatforforeachgoto ifimplicitinintinterface internalislocklongnamespace newnullobjectoperatorout overrideparamsprivateprotectedpublic readonlyrefreturnsbytesealed shortsizeofstackallocstaticstring structswitchthisthrowtrue trytypeofuintulongunchecked unsafeushortusingvirtualvoid volatilewhile
In some places in the grammar, specific identifiers have special meaning, but are not keywords. For example, within a property declaration, the “get” and “set” identifiers have special meaning (§10.6.2). An identifier other than get or set is never permitted in these locations, so this use does not conflict with a use of these words as identifiers.
A literal is a source code representation of a value.
literal: boolean-literal integer-literal real-literal character-literal string-literal null-literal
18.104.22.168 Boolean literals
There are two boolean literal values: true and false.
boolean-literal: true false
The type of a boolean-literal is bool.
22.214.171.124 Integer literals
Integer literals are used to write values of types int, uint, long, and ulong. Integer literals have two possible forms: decimal and hexadecimal.
40Copyright Microsoft Corporation 1999-2003. All Rights Reserved.