C#

C# Version History | C# Evolution and Features

C# was developed in the year 2002 with the .NET Framework 1.0 and has since continued to develop with enhanced features and performance.

C# is a general-purpose, contemporary, and object-oriented programming language. It was created by Microsoft as part of the.NET program and was authorized by the ECMA (European Computer Manufacturers Association) and the ISO (International Standards Organization).

C# Evolution

.NET Framework 1.0 introduced C# in 2002 and it has since evolved significantly. While writing this article, C# 9.0 is the most recent version.

C# 9.0 was released in September 2020 along with .NET 5 platform. If you wish to download .NET 5.0 and try out the features check it from here, download .NET 5

We are eagerly anticipating the release of the language’s newest version, too. There has not yet been an official release date announced for C# 10.0, though it is expected to launch alongside the .NET 6 in November.

Few expected core features in C# version 10 are

Required Properties to make a property required at the time of defining a class

Null Parameter Checking wherein the code automatically verifies whether the param Object is null

Global Usings to define global usings for the whole project for all common usings

File Namespaces enable defining a namespace of the class on the file level

Field Keyword permit the caller to modify the members while construction is in progress

C# Version History Table

This table shows the noteworthy features that were introduced in each new release of C#, which will help as a quick reference guide.

C# Version.NET Framework VersionVisual Studio VersionCore Features
C# 1.0.NET Framework 1.0Visual Studio 2002Initial Release. Basic Object-Oriented Programming features such as,
Classes
Structs
Properties
Events
Interfaces
Delegates
Statements
Expressions
Attributes
C# 1.2.NET Framework 1.1Visual Studio 2003Minor enhancements on C# 1.0
C# 2.0.NET Framework 2.0Visual Studio 2005Partial classes
Generics
Anonymous methods
Iterators
Nullable types
Properties with Private setters
Delegates with Method group conversions
Covariance and Contra-variance
Static classes
C# 3.0.NET Framework 3.0\3.5Visual Studio 2008Implicitly typed local variables
Auto-Implemented properties
Object Initializers
Collection initializers
Anonymous types
Extension methods
Query expressions
Lambda expressions
Expression trees
Partial Methods
C# 4.0.NET Framework 4.0Visual Studio 2010Dynamic keyword introduced
Named Parameters & optional arguments
Generic covariant and contravariant
Embedded interop types
C# 5.0.NET Framework 4.5Visual Studio 2012/2013Asynchronous members
Caller information attributes
C# 6.0.NET Framework 4.6Visual Studio 2013/2015Expression Bodied Methods
Auto-property initializer
name of Expression
Primary constructor
Await in the catch block
Exception Filter
String Interpolation
C# 7.0.NET Core 2.0Visual Studio 2017Tuples
Out variables
Discards
Pattern Matching
Local functions
Generalized async return types
Digital Separators
Binary literals
Ref returns and locals
C# 7.1.NET CoreVisual Studio 2017Default literal expression
Async main
Inferred Tuple element names
C# 7.2.NET CoreVisual Studio 2017Non-trailing named argument
Private protected access modifier
Leading underscores in numeric literals
C# 7.3.NET CoreVisual Studio 2018Using additional generic constraints
Reassigning ref local variables
Accessing fixed fields without pinning
C# 8.0.NET Core 3.0Visual Studio 2019Readonly members
Default interface methods
Pattern matching enhancements
Using declarations
Static local functions
Readonly struct members
Default interface members
Asynchronous streams
Switch expressions
Indices and ranges
Disposable ref struct
Nullable reference types
Null coalescing assignment
Unmanaged constructed types
C# 9.0.NET 5Visual Studio 2019Immutable representation of data shapes
New Record types
Init only setters
Top-level statement
Functions pointers
Module Initializers
Covariant return types.
Native Sized integers
C# 10.0 .NET 6Visual studio 2022Null Parameter Checking
Required Properties
Field Keyword
Global Usings
File Namespaces
Const interpolated strings.
Record types can seal ToString()
Allows both declaration and assignment
in the same deconstruction.
AsyncMethodBuilder attribute
C#.NET Version History & Features

C# Version History FAQ

What is the latest version C#?

C# 10.0, which was released with . NET 6.0 in 2021, is the most recent version of the language

What is the version of C# in .NET 4.7 2?

C# 7.3

Which version of C# started with .NET Core?

C# 7.0

What is the last version of .NET Framework?

.NET Framework 4.8 may be the last version of .NET Framework. There are no plans to remove. NET Framework from the Windows operating system.

Summary

In this article, we had a brief overview of the C# version history, and the features included in each version of C#. This history of C# will be useful for quick reference. Hope you find this article helpful. Leave your valuable feedback below.

Rajeev

View Comments

Recent Posts

OWIN Authentication in .NET Core

OWIN (Open Web Interface for .NET) is an interface between web servers and web applications…

2 years ago

Serializing and Deserializing JSON using Jsonconvertor in C#

JSON (JavaScript Object Notation) is a commonly used data exchange format that facilitates data exchange…

2 years ago

What is CAP Theorem? | What is Brewer’s Theorem?

The CAP theorem is also known as Brewer's theorem. What is CAP Theorem? CAP theorem…

2 years ago

SOLID -Basic Software Design Principles

Some of the Key factors that need to consider while architecting or designing a software…

2 years ago

What is Interface Segregation Principle (ISP) in SOLID Design Principles?

The Interface Segregation Principle (ISP) is one of the SOLID principles of object-oriented design. The…

2 years ago

What is Single Responsibility Principle (SRP) in SOLID Design Priciples?

The Single Responsibility Principle (SRP), also known as the Singularity Principle, is a software design…

2 years ago