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
Nullable value types
covariance & contravariance
C# 3 – 2007 – LINQ & Lambdas
Object and Collection initializers
C# 4 -2010 – Dynamic Binding
Named & optional arguments
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
Null-conditional ?. ?
Exception filter (when)
C# 7 -2017 – out variables
Pattern matching, Tuple type, Named tuple,
C# 8 -2019 – index/range
Default interface methods
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
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
Generic Math support
UTF-8 string literals
C# 12 -2023 -Primary Constructors
Optional params in lambdas
Semantic alias types
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.
Enjoy this beautiful Opera masterpiece by the Italian Baroque music master:
Il ritorno di Ulisse in Patria