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.
- C# 5.0 (2012; Word document)
- (The C# 4.0 specification is currently missing in action, so to speak - the previous link has been replaced by the 5.0 spec.)
- C# 3.0 (unified, 2007; Word document)
- C# 2.0 (September 2005; Word document)
- C# 1.2 (2003; Word document)
- C# 1.0 (2002; Word document)
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
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.)