Tuesday, 8 March 2011

C# Language Specification

When C# was first released upon the world by Microsoft, it was also sent through the standards bodies, ECMA and ISO. The standards bodies eventually formalised the language specification and published versions of them.

For example, the ECMA version of the C# standard, ECMA-334, is available to freely download as a PDF. Also the ISO version of the C# standard, ISO/IEC 23270:2003, can also be freely downloaded.

However the standards bodies always have a large lag. Both the ECMA and ISO versions of the C# standard are based on C# 2.0 and were last updated in 2006.

Microsoft, on the other hand, is always moving things along and the current release version of the language is C# 4.0, accompanying .NET 4, released in April 2010.

Since C# 2.0 we've had neat improvements like lambda expressions, object initializers, implicitly typed variables, query expressions, extension methods and more besides.

There are various good books that cover this most recent release of the language. I find Andrew Troelsen's Apress texts give pretty comprehensive coverage, and his latest edition Pro C# 2010 and the .NET 4 Platform is a good addition to a programmer's bookshelf.

 

However, and here is the point behind this post, you can always get the formal language specification directly from Microsoft. The C# 4.0 language specification can be found either on MSDN or on the Microsoft Download site.