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.
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
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.)