C# | Version History

C# is a general-purpose, modern and object-oriented programming language pronounced as “C Sharp”. It was developed by Microsoft led by Anders Hejlsberg and his team within the .NET initiative and was approved by the European Computer Manufacturers Association (ECMA) and International Standards Organization (ISO). The current version of C# is C# 7.3.

The below table shows some important features introduced in each version of C#:

Version .NET Framework Visual Studio Major Features
C# 1.0 .NET Framework 1.0 Visual Studio .NET 2002
C# 1.2 .NET Framework 1.1 Visual Studio .NET 2003
  • Basic features
C# 2.0 .NET Framework 2.0 Visual Studio 2005
  • Generics
  • Partial types
  • Anonymous methods
  • Nullable types
  • Iterators
  • Covariance and contravariance
  • Method group conversions (delegates)
  • Static classes
  • Delegate inference
  • Getter/setter separate accessibility
C# 3.0 .NET Framework 2.0/3.0/3.5 Visual Studio 2008/2010
C# 4.0 .NET Framework 4 Visual Studio 2010
  • Dynamic binding
  • Named/optional arguments
  • Generic covariant and contravariant
  • Embedded interop types
C# 5.0 .NET Framework 4.5 Visual Studio 2012/2013
  • Asynchronous members
  • Caller info attributes
C# 6.0 .NET Framework 4.6 Visual Studio 2015
  • Static imports
  • Exception filters
  • Auto-property initializers
  • Expression bodied members
  • Null propagator
  • String interpolation
  • nameof operator
  • Index initializers
  • Await in catch/finally blocks
  • Default values for getter-only properties
C# 7.0 .NET Framework 4.6.2 Visual Studio 2017
  • Out variables
  • Tuples and deconstruction
  • Pattern matching
  • Local functions
  • Expanded expression bodied members
  • Ref locals and returns
  • Discards
  • Binary Literals and Digit Separators
  • Throw expressions
C# 7.1 .NET Framework 4.7 Visual Studio 2017 version 15.3
  • async Main method
  • default literal expressions
  • Inferred tuple element names
  • Pattern matching on generic type parameters
C# 7.2 .NET Framework 4.7.1 Visual Studio 2017 version 15.5
  • Techniques for writing safe efficient code
  • Non-trailing named arguments
  • Leading underscores in numeric literals
  • private protected access modifier
  • Conditional ref expressions
C# 7.3 .NET Framework 4.7.2 Visual Studio 2017 version 15.7
  • You can access fixed fields without pinning.
  • You can reassign ref local variables.
  • You can use initializers on stackalloc arrays.
  • You can use fixed statements with any type that supports a pattern.
  • You can use additional generic constraints.


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.