The Evolution of C#

The evolution of csharp

Last Updated on November 13, 2023 by Aram

C# was born 23 years ago.

It was designed by Anders Hejlsberg from Microsoft in 2000.

There were some epic milestones that helped carve C# along the years and make it stand to be one of the most used technologies today.

Features including events, delegates, generics, LINQ, extension methods, anonymous types, asynchronous members, records, and many more.

Since C# 8, we have been getting yearly updates, which include new features, performance enhancements and security improvements.

Shipped with .NET 8, C# 12 is the latest upcoming major update that will be announced for Global Availability this week.

As a C# and .NET developer, you should equip yourself with the knowledge of the different features in C# and how to utilize them for an effective development.

And here are all the features listed down per C# version that would form the evolution of C#:

C# 1 – 2000 – OOP

Basic OOP features




C# 2 – 2005 – Generics

Anonymous methods


Nullable value types

covariance & contravariance

C# 3 – 2007 – LINQ & Lambdas

Auto-implemented properties

Extension methods

Expression trees

Object and Collection initializers

Anonymous types

C# 4 -2010 – Dynamic Binding

Named & optional arguments

Tuple class

Generic covariant and contravariant

Embedded interop types

C# 5 -2012 – The rise of asynchronous programming in C#

Asynchronous members with async/await

Caller info attributes

C# 6 -2015 – Clean Code

Static imports

Auto-property Init

Interpolated strings

Null-conditional ?. ?[]

nameof keyword

Expression-bodied members

Exception filter (when)

C# 7 -2017 – out variables

Pattern matching, Tuple type, Named tuple,

Tuple deconstruction

C# 8 -2019 – index/range

Readonly members

Default interface methods

Switch expressions

New pattern matching types: Property, Discard, Positional, Tuple.

Null-coalescing assignment operator ??=

C# 9 -2020 -Records

New Pattern Matching Types: Relational, Logical, parenthesized, negated null constant

Init only setters

Top-level statements

Target-typed new expressions

C# 10 -2021 -Record Structs

New Pattern Matching Type: Extended property pattern

Improved structure types

Improved Interpolated Strings

Global using directives

C# 11 -2022 -Raw String Literals

New Pattern Matching Type: List patterns

Required members

Generic attributes

Generic Math support

Auto-default structs

UTF-8 string literals

C# 12 -2023 -Primary Constructors

Collection Expressions

Optional params in lambdas

Semantic alias types

Ref readonly

Inline arrays

Experimental attribute

Below is an infographic that covers all the main features released with each major version of C# starting from version 1 until version 12


C# today is the result of an amazing and massive work over the past 2 decades.

As a C# and .NET developer, you always need to be aware of the upcoming features and other recent features, to stay at the verge of this amazing language and that will make you standout.

Don’t stay behind, always assign some time to learn new features so you can catch up with the rapid pace of C# and .NET releases.

This article helped introduce you to the evolution of C#, and how it became as it is today.


I am always open to discuss any protentional opportunities and collaborations.

Check this page to learn more about how we can benefit each other.

Sponsorships and Collaborations


Enjoy this beautiful Opera masterpiece by the Italian Baroque music master:

Claudio Monteverdi

Il ritorno di Ulisse in Patria

Leave a Reply