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

If you have Visual Studio 2012 installed, you can also find the C# 5.0 specification 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.)