Note: This article was published on 05/11/2021.
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 |
|
| C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 |
|
| C# 3.0 | .NET Framework 3.0/3.5 | Visual Studio 2008 |
|
| C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 |
|
| C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 |
|
| C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 |
|
| C# 7.0 | .NET Core 2.0 | Visual Studio 2017 |
|
| C# 8.0 | .NET Core 3.0 | Visual Studio 2019 |
|
| C# 9.0 | .NET 5.0 | Visual Studio 2019 |
|
| C# 10.0 | .NET 6.0 | Visual Studio 2022 |
|
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.
- Classes
- Structs
- Interfaces
- Events
- Properties
- Delegates
- Operators and expressions
- Statements
- Attributes
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.
- Generics
- Partial types
- Anonymous methods
- Nullable value types
- Iterators
- Covariance and contravariance
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.
- Auto-implemented properties
- Anonymous types
- Query expressions
- Lambda expressions
- Expression trees
- Extension methods
- Implicitly typed local variables
- Partial methods
- Object and collection initializers
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:
- Static imports
- Exception filters
- Auto-property initializers
- Expression-bodied members
- Null propagator
- String interpolation
- name of operator
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:
- Out variables
- Tuples and deconstruction
- Pattern matching
- Local functions
- Expanded expression-bodied members
- Ref locals and returns
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
- async main method
- The entry point for an application can have the async modifier.
- default literal expressions
- You can use default literal expressions in default value expressions when the target type can be inferred.
- Inferred tuple element names
- The names of tuple elements can be inferred from tuple initialization in many cases.
- Pattern matching on generic type parameters
- You can use pattern match expressions on variables whose type is a generic type parameter.
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
- Techniques for writing safe efficient code
- A combination of syntax improvements that enable working with value types using reference semantics.
- Non-trailing named arguments
- Named arguments can be followed by positional arguments.
- Leading underscores in numeric literals
- Numeric literals can now have leading underscores before any printed digits.
- private protected access modifier
- The private protected access modifier enables access for derived classes in the same assembly.
- Conditional ref expressions
- The result of a conditional expression (?:) can now be a reference.
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.
- You can access fixed fields without pinning.
- You can reassign ref local variables.
- You can use initializers on stackable arrays.
- You can use fixed statements with any type that supports a pattern.
- You can use additional generic constraints.
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
- Readonly members
- Default interface methods
- Pattern matching enhancements
- Using declarations
- Static local functions
- Disposable ref structs
- Nullable reference types
- Asynchronous streams
- Asynchronous disposable
- Indices and ranges
- Null-coalescing assignment
- Unmanaged constructed types
- Stackalloc in nested expressions
- Enhancement of interpolated verbatim strings
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
- Records
- Init only setters
- Top-level statements
- Pattern matching enhancements
- Performance and interop
- Fit and finish features
- Support for code generators
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
- Record structs
- Improvements in structure types
- Interpolated string handlers
- global use directives
- File-scoped namespace declaration
- Extended property patterns
- Improvements in lambda expressions
- Allowconstinterpolated strings
- Record types can sealToString()
- Improved definite assignment
- Allow both assignment and declaration in the same deconstruction
- AllowAsyncMethodBuilderattribute on methods
- CallerArgumentExpression attribute
- Enhanced#linepragma
- Warning wave 6
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
- Raw string literals
- Generic math support
- Generic attributes
- UTF-8 string literals
- Newlines in string interpolation expressions
- List patterns
- File-local types
- Required members
- Auto-default structs
- Pattern matchSpan<char>on a constantstring
- Extendedname of scope
- Numeric IntPtr
- reffields andscoped ref
- Improved method group conversion to delegate
- Warning wave 7

Join the conversation! Your thoughts help the community grow.