C# Language Specifications
The C# language has two major sources of specifications: ECMA and Microsoft. The ECMA specification
only goes as far as C# 2.0, even though it's the fourth edition, confusingly enough. This page is a collection
of all the versions I've found - but it's quite possible that some will move around, so please let me know
if you have any problems, or find any more.
Microsoft specifications
The C# 5 specification is not available for download at the time
of this writing, but if you have Visual Studio 2012 installed, you can
find it under the installation directory (e.g.
"C:\Program Files (x86)\Microsoft Visual Studio 11.0") in a
subdirectory of "VC#\Specifications\1033".
I can strongly recommend the hard-copy annotated version of the
C# 4 specification - I have two copies (one at work and one at
home) and I find them very useful. The annotations are really
helpful, above and beyond just having a physical version of the
specification.
ECMA specifications
Annotated specifications
Both the ECMA and Microsoft teams have produced annotated specifications, with interesting comments from the design team and
some members of the community. I can thoroughly recommend them as providing extra insight. (Disclaimer: I contributed annotations
to the ECMA C# 2 and Microsoft C# 4 specs.)