C#.Net versions over the years
C# version | .Net Framework | Visual Studio | Released | Major new features |
---|---|---|---|---|
C# 1.0 | .Net 1.0 | VS 2002 | January 2002 | |
C# 1.2 | .Net 1.1 | VS 2003 | April 2003 | First version to call Dispose on IEnumerator s which implemented IDisposable |
C# 2.0 | .Net 2.0 | VS 2005 | November 2005 | generics, anonymous methods, nullable types, iterator blocks. |
C# 3.0 | .Net 3.5 | VS 2008 | November 2007 | lambda expressions, extension methods, expression trees, anonymous types, implicit typing (var), query expressions. |
C# 4.0 | .Net 4 | VS 2010 | April 2010 | late binding (dynamic), delegate and interface generic variance, more COM support, named arguments, tuple data type and optional parameters. |
C# 5.0 | .Net 4.5 | VS 2012 | August 2012 | async programming, caller info attributes, Breaking change: loop variable closure. |
C# 6.0 | .Net 4.6 | VS 2015 | July 2015 | initializers for automatically implemented properties, using directives to import static members, exception filters, indexed members and element initializers, await in catch and finally, extension Add methods in collection initializers. |
C# 7.0 | .Net 4.7 | VS 2017 | March 2017 | tuples, ref locals and ref return, pattern matching (including pattern-based switch statements), inline out parameter declarations, local functions, binary literals, digit separators, and arbitrary async returns |
C# 7.1 | .Net 4.7 | VS 2017 (v15.3) | August 2017 | async main, tuple member name inference, default expression, pattern matching with generics |
C# 7.2 | .Net 4.7 | VS 2017 (v15.5) | November 2017 | private protected access modifier, Span |
Note: The language, framework as well as CLR are versioned independently.