C# Versions

This article provides a history of each major release of the C# language (from Wiki and Microsoft).

C# Versions from Wiki
 

Version Date .NET Visual Studio
C# 1.0 January 2002 .NET Framework 1.0 Visual Studio .NET 2002
C# 1.1
C# 1.2
April 2003 .NET Framework 1.1 Visual Studio .NET 2003
C# 2.0 November 2005 .NET Framework 2.0
.NET Framework 3.0
Visual Studio 2005
Visual Studio 2008
C# 3.0 November 2007 .NET Framework 2.0 (Except LINQ)
.NET Framework 3.0 (Except LINQ)
.NET Framework 3.5
Visual Studio 2008
C# 4.0 April 2010 .NET Framework 4 Visual Studio 2010
C# 5.0 August 2012 .NET Framework 4.5 Visual Studio 2012
Visual Studio 2013
C# 6.0 July 2015 .NET Framework 4.6
.NET Core 1.0
.NET Core 1.1
Visual Studio 2015
C# 7.0 March 2017 .NET Framework 4.7 Visual Studio 2017 version 15.0
C# 7.1 August 2017 .NET Core 2.0 Visual Studio 2017 version 15.3
C# 7.2 November 2017 Visual Studio 2017 version 15.5  
C# 7.3 May 2018 .NET Core 2.1
.NET Core 2.2
.NET Framework 4.8
Visual Studio 2017 version 15.7
C# 8.0 September 2019 .NET Core 3.0
.NET Core 3.1
Visual Studio 2019 version 16.3
C# 9.0 November 2020 .NET 5.0 Visual Studio 2019 version 16.8
C# 10.0 November 2021 .NET 6.0
.NET 6.1
Visual Studio 2022version 17.0
C# 11.0 November 2022 .NET 7 Visual Studio 2022


C# Version History

C# was first introduced with .NET Framework 1.0 in the year 2002 and evolved much since then. The following table lists important features introduced in each version of C#.

Version .NET Framework Visual Studio Important Features
C# 1.0 .NET Framework 1.0/1.1 Visual Studio .NET 2002
  • Basic features
C# 2.0 .NET Framework 2.0 Visual Studio 2005
  • Generics
  • Partial types
  • Anonymous methods
  • Iterators
  • Nullable types
  • Private setters (properties)
  • Method group conversions (delegates)
  • Covariance and Contra-variance
  • Static classes
C# 3.0 .NET Framework 3.0/3.5 Visual Studio 2008
  • Implicitly typed local variables
  • Object and collection initializers
  • Auto-Implemented properties
  • Anonymous types
  • Extension methods
  • Query expressions
  • Lambda expressions
  • Expression trees
  • Partial Methods
C# 4.0 .NET Framework 4.0 Visual Studio 2010
  • Dynamic binding (late binding)
  • Named and optional arguments
  • Generic co- and contravariance
  • Embedded interop types
C# 5.0 .NET Framework 4.5 Visual Studio 2012/2013
  • Async features
  • Caller information
C# 6.0 .NET Framework 4.6 Visual Studio 2013/2015
  • Expression Bodied Methods
  • Auto-property initializer
  • name of Expression
  • Primary constructor
  • Await in catch block
  • Exception Filter
  • String Interpolation
C# 7.0 .NET Core 2.0 Visual Studio 2017
  • out variables
  • Tuples
  • Discards
  • Pattern Matching
  • Local functions
  • Generalized async return types
C# 8.0 .NET Core 3.0 Visual Studio 2019
  • Readonly members
  • Default interface methods
  • Using declarations
  • Static local functions
  • Disposable ref structs
  • Nullable reference types
C# 9.0 .NET 5.0 Visual Studio 2019
  • Records
  • Init-only properties
  • Top-level statements
  • Init accessors and read-only fields
  • With-expressions
  • Value-based equality
C# 10.0 .NET 6.0 Visual Studio 2022
  • Record structs
  • Global use directives
  • File-scoped namespace declaration
  • Extended Proptery Patterns
  • Null Parameter Checking
  • Constant interpolated strings


The history of C# from MS


C# version 1.0

When you go back and look, C# version 1.0, was released with Visual Studio .NET 2002. The major features of C# 1.0 included.

C# version 1.2

C# version 1.2 shipped with Visual Studio .NET 2003. It contained a few small enhancements to the language. Most notable is that starting with this version, the code generated in a for each loop called Dispose on an IEnumerator when that IEnumerator implemented IDisposable.

C# version 2.0

Now things start to get interesting. Let's take a look at some major features of C# 2.0, released in 2005, along with Visual Studio 2005.

Other C# 2.0 features added capabilities to existing features.

  • Getter/setter separate accessibility
  • Method group conversions (delegates)
  • Static classes
  • Delegate inference

C# version 3.0

C# version 3.0 came in late 2007, along with Visual Studio 2008, though the full boat of language features would come with .NET Framework version 3.5. This version marked a major change in the growth of C#. It established C# as a truly formidable programming language. Let's take a look at some major features in this version.

C# version 4.0

C# version 4.0, released with Visual Studio 2010. The next version did introduce some interesting new features.

C# version 5.0

C# version 5.0, released with Visual Studio 2012, was a focused version of the language.The asyncand await model for asynchronous programming. Here is the list of the major features.

See Also

C# version 6.0

With versions 3.0 and 5.0, C# had added major new features in an object-oriented language. With version 6.0, released with Visual Studio 2015. Here are some of them:

Other new features include

  • Index initializers
  • Await in catch/finally blocks
  • Default values for getter-only properties

C# version 7.0

C# version 7.0 was released with Visual Studio 2017. Here are some of the new features:

Other features included

C# version 7.1

C# started releasing point releases with C# 7.1. This version added the language version selection configuration element, three new language features, and new compiler behavior.

The new language features in this release are

Finally, the compiler has two options -refute and -refonly that control reference assembly generation.

C# version 7.2

C# 7.2 added several small language features

C# version 7.3

There are two main themes to the C# 7.3 release. The following new features support the theme of better performance for safe code.

The following enhancements were made to existing features

  • You can test == and != with tuple types.
  • You can use expression variables in more locations.
  • You may attach attributes to the backing field of auto-implemented properties.
  • Method resolution when arguments differ by it has been improved.
  • Overload resolution now has fewer ambiguous cases.

The new compiler options are

  • -publicsign to enable Open Source Software (OSS) signing of assemblies.
  • -pathmap to provide a mapping for source directories.

What's new in C# 8.0

  • 04/07/2020

C# 8.0 adds the following features and enhancements to the C# language

C# 8.0 is supported on .NET Core 3. x and .NET Standard 2.1. For more information, see C# language versioning.

What's new in C# 9.0

  • 04/07/2021

C# 9.0 adds the following features and enhancements to the C# language

C# 9.0 is supported on .NET 5. For more information, see C# language versioning.

What's new in C# 10

  • 11/29/2022

C# 10 adds the following features and enhancements to the C# language

C# 10 is supported on.NET 6. For more information, seeC# language versioning.

What's new in C# 11

  • 11/30/2022

The following features were added in C# 11


Similar Articles