C# Version History

C# is a general purpose, object-oriented programming language developed by Microsoft.

Anders Hejlsberg was the man behind the development of C# language. He was the leader of the team who developed the C# language.

At present latest C# Version is 7.0, this version was released in 2017 along with Visual Studio 2017.

First-time C# appeared in 2000, then it was released in 2002 with .Net Framework 1.0, after that C# evolved so much.

Following is the C# version history and the list of important features which have been introduced in each version of C#:

Version .NET Framework Version Important Features Release Date
C# 1.0 .NET Framework 1.0 Basic features January 2002
C# 1.1 and 1.2 .NET Framework 1.1 Built-in support for mobile ASP.NET controls
Enables Code Access Security in ASP.NET applications
Built-in support for ODBC and Oracle Database
Internet Protocol version 6 (IPv6) support, etc
April 2003
C# 2.0 .NET Framework 2.0 Generics
Partial types
Anonymous methods
Nullable types
Getter/setter separate accessibility
Method group conversions (delegates)
Co- and Contra-variance for delegates
Static classes
Delegate inference
November 2003
C# 3.0 .NET Framework 3.0/3.5 Implicitly typed local variables
Object and collection initializers
Auto-Implemented properties
Anonymous types
Extension methods
Query expressions
Lambda expression
Expression trees
Partial methods
November 2007
C# 4.0 .NET Framework 4.0 Dynamic binding
Named and optional arguments
Generic co- and contravariance
Embedded interop types ("NoPIA")
April 2010
C# 5.0 .NET Framework 4.5 Asynchronous methods
Caller info attributes
August 2012
C# 6.0 .NET Framework 4.6 Compiler-as-a-service (Roslyn)
Import of static type members into namespace
Exception filters
Await in catch/finally blocks
Auto property initializers
Default values for getter-only properties
Expression-bodied members
Null propagator (null-conditional operator, succinct null checking)
String interpolation
nameof operator
Dictionary initializer
July 2015
C# 7.0 .NET Framework 4.6.2 Out variables
Pattern matching
Local functions
Digit separators
Binary literals
Ref returns and locals
Generalized async return types
Expression bodied constructors and finalizers
Expression bodied getters and setters
March 2017